Commit Graph

350 Commits

Author SHA1 Message Date
Johnni Winther d5650235a2 [cfe] Handle ProblemBuilder in binary expression
Closes #41787

Change-Id: I81fcf0aee975b58b3b44d0de94054ae87bdd265d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/147140
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-05-12 11:44:19 +00:00
Jens Johansen 4264cba086 [CFE/kernel] Reproduction for crashes
Change-Id: I1f6e0a3dd08c9bfd3875b0835a5b9241b78e2602
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/146805
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-05-07 07:30:48 +00:00
Johnni Winther 59e54abb0e [cfe] Handle callable type variables.
Change-Id: Ibd963206bb81fef16f3cb410fc352e636b0596e0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/146580
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-05-05 10:02:03 +00:00
Johnni Winther 712efa2a49 [cfe] Handle problems and recovery in non-null check
Closes #41597

Change-Id: I781d70d7cd720ab09d68a22ead1639bf37953955
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/144941
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-28 08:06:48 +00:00
Johnni Winther 3f18d37333 [cfe] Implement NNBD_TOP_MERGE update
Change-Id: I6b204b5d7def6a9d1dd4709e47f95eb102741489
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/144763
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-27 16:28:08 +00:00
Johnni Winther e9ca413263 [cfe] Handle nullable access to extension members
Closes #41349
Closes #41495

Change-Id: I1893502592af1615184b5dd294e1835b51959a07
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/144761
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-27 13:47:08 +00:00
Johnni Winther d59d0752e2 [cfe] Avoid hoisting in top-level inference
Change-Id: I1ae642c241557f0c5d00a56ab6af350408aef1bd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/144513
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-23 13:35:09 +00:00
Dmitry Stefantsov 52df6d0eb7 [cfe] Clean up the remaining TextSerializationFailure statuses
Change-Id: I96ea244589ae9c103b0f061198ebd0b57b8184d4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/144401
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
2020-04-23 06:28:48 +00:00
Dmitry Stefantsov 56df960ddf [cfe] Refine text serialization testing: skip free variables
The CL reduces the number of false positive cases in the round-trip
serialization unit testing by refining the verifier analysis.  Not it
doesn't attempt to make the round trip over the sub-trees containing
free variables.

Change-Id: Ib6fb2e72f7543ea7d99c5273c337801f3ad1bec4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/144285
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
2020-04-22 10:27:08 +00:00
Jens Johansen 97e0983094 [parser] Fix NP in scanner caused by never setting eof
This e.g. happends on input that's UTF-16 LE.

Also see https://github.com/flutter/flutter/issues/54840.

Note that this doesn't really fix much, because the scanner still
tries to read the input as utf8 (which it potentially isn't, and isn't
in the test cases added) and it thus basically outputs garbage.

Change-Id: I7198928dc6f0dd16728c1c04ccd4286faae8dd20
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143586
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-04-20 13:21:46 +00:00
Dmitry Stefantsov 5b342eb9a3 [cfe] Refine analysis of text serialization verifier
The verifier now determined what is supported for the serialization
more precisely, resulting in less TextSerializationFailures in the
unit tests.

Change-Id: I3728f56c9cb5042420b6a13acb2ed06f4be6a924
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143809
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-04-20 10:01:46 +00:00
Johnni Winther d690a0c7c4 [cfe] Handle nullability of typedefs
Closes #41496
Closes #41498
Closes #41499
Closes #41501
Closes #41505

Change-Id: I425b6137f9ea41d01c95332ef1f7d43ca7afb5a6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143811
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-20 07:03:55 +00:00
Dmitry Stefantsov d5dea0056b [cfe] Improve diagnostics on text serialization failures
This CL also includes the following changes:
- The .registerTags() method is added to the Case combinator.
- The actual canonical names' root is passed into the deserializer.
- Some text serialization failures are fixed and the corresponding
status entries in text_serialization.status removed.

Change-Id: I222dfa3fc348dddf83e0c6edb92f15d08b8e73e9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143803
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
2020-04-17 10:53:47 +00:00
Johnni Winther 594f77715b [cfe] Handle potentially constant type expression in is expression
Closes #41385

Change-Id: Ia2fa829621931d52c5e41ac0414d12b9caa1256d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142860
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-16 09:07:21 +00:00
Johnni Winther f48a3afbae [cfe] Handle nullability difference in LUB computation
Closes #41114

Change-Id: Ifc7d3a35c4274bbb5651ced1c28c984e5c1a34ad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142985
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-04-16 06:52:30 +00:00
Jens Johansen 9f06c32b45 [CFE] Fix crash when implementing or mixing in a functionType
Bug: 41265
Change-Id: Idf4fbc44c210008c3c94639c138adbd3afec2cef
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143522
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-04-16 06:35:50 +00:00
Johnni Winther da95c79901 [cfe] Handle nnbd is-test in constant evaluation
+ detect ~/ evaluation errors

Change-Id: Ic3f979c7516ed9aa2da0eab8b8d902987107c189
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142982
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-04-15 17:29:43 +00:00
Johnni Winther eb18db2116 [cfe,kernel] Add Field.isInternalImplementation
This bit is required to support synthesized field used for the late
lowering. These fields should not be seen as part of the interface,
that is, classes that implement the class declaring the late field should
not be required to override these fields.

Closes #41436

Change-Id: I9a98322bdd1842b46bde34fff1176a7577672e0f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142998
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-15 13:46:43 +00:00
Johnni Winther 208ab625c1 [cfe] Avoid reporting missing implementation on internal fields for late lowering
Closes #41436

Change-Id: Ib6227a34ca188a379f8910a2911082caef280d79
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142984
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-14 12:21:19 +00:00
Johnni Winther 0d16ff6d86 [cfe] Handle static type of access on Never
Closes #41273

Change-Id: Ia236481ab47033198d7952086cdf5c9c8f5a34b7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142366
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-04-08 08:46:02 +00:00
Johnni Winther 04b6c6a116 [cfe] Handle Null <: Never in mixed inheritance bounds check
Change-Id: I994f76b3b4f6d498a8e41f7e34849616960dca08
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142368
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-06 15:18:31 +00:00
Johnni Winther 9f80082ce3 [cfe] Avoid unconsolidated override checks in mixed inheritance
Change-Id: I1cd8aa5bdf53010d8f394e5981239211921f2117
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142365
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-04-06 09:51:30 +00:00
Johnni Winther 0e5624a083 [cfe] Handle static typing of nullable access to Object members
Closes #41282

Change-Id: I39d0bf8a35e635e860f4bf810ee37e00950e3a8f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142364
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-06 09:22:00 +00:00
Johnni Winther 4039373d90 [cfe] Handle covariant operator == parameter
Closes #41283

Change-Id: Ibd452dd181ce8ff17a48ffb1e12f312fe64ec216
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142145
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-04-03 10:54:13 +00:00
Jens Johansen ebdc894324 [CFE] Fix crash with constructor recovery; add error recovery tests
Change-Id: I67f7a4592e562e1b1411f424d96c1a7b1d49d26b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142160
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-04-03 06:24:46 +00:00
Jens Johansen 5e3972ffd4 [CFE] Sort status files
Change-Id: Ia7e65057fc15ee36e6e9547906bcc9298fc3df93
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142141
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-04-03 06:24:26 +00:00
Johnni Winther fae35fca47 [cfe] Handle potentially constant type expressions in CFE
Closes #41305

Change-Id: Ibb839c5b6619ae2f7e90cc956c7de20d8c76ae3d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142120
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-02 13:23:04 +00:00
Johnni Winther 82d4bd1c7e [cfe] Handle member signatures from dill in class hierarchy builder
Closes #41210

Change-Id: I1e38e014c04f140dd37821375a6efbfe73f37562
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141545
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-30 14:09:31 +00:00
Johnni Winther 4150349c7c [cfe] Handle throw in return type inference
Closes #41156

Change-Id: I6f5360ccf3f05c2f59de5db703d90431e0d61e7c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141100
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-03-27 15:59:27 +00:00
Johnni Winther 25060e63c6 [cfe] Add tool for updating all id-tests and expectation tests
Change-Id: I191ebe0d59d44055a6818505db0112d3a452bdbb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141242
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2020-03-27 14:52:20 +00:00
Johnni Winther b8b4a16179 [cfe] Use legacy erasure before argument inference
If calling an opt-in method from opt-out we would use the opt-in
parameter types as type context for the arguments leading to
opt-in inference in opt-out libraries. With this change the
callee type is legacy erased before inference when the invocation
is in an opt-out library.

Closes #41180

Change-Id: I55a0a4f055f500652c154c020a175fe12892abb9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140861
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-27 10:16:29 +00:00
Johnni Winther 9ea09ce17b [cfe] Improve message on final variable assignment
Closes #40242

Change-Id: Iccdfbf01da18ddd501dc705b678358c974003551
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140654
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2020-03-24 13:11:29 +00:00
Johnni Winther 62f84880ef [cfe] Report error on missing return from non-nullable function
Closes #40520
Closes #40948
Closes #40425

Change-Id: I0aa3cfa51b410c90dd0bea963846eeb6b2e73efb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140540
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-03-24 08:21:36 +00:00
Johnni Winther 7ec1d20122 [cfe] Fix explicition extension index set key type
Closes #39527

Change-Id: Ic55498bbf72cf720dadf3fa7f816c7bae1715b52
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140401
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2020-03-24 06:52:46 +00:00
Johnni Winther 9605fc367f [cfe] Report error on required named parameters overriding optional named parameters
Closes #40950

Change-Id: I5d829affd3df9ca66d5a1b632f364779bdcfb2ac
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140541
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-03-24 06:22:16 +00:00
Johnni Winther 4e1954fa08 [cfe] Infer loadLibrary return a non-nullable future
Closes #41122

Change-Id: I1ca82e27cc73900e19369d152cec4f7a7621777b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140400
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-03-23 17:24:43 +00:00
Johnni Winther b8544e8220 [cfe] Don't report nnbd errors/warnings in top level inference
Closes #41102

Change-Id: Ieede171d92aa28b0ad9478a1b4293ddf35418d7e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140040
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-03-23 16:39:03 +00:00
Johnni Winther d2e96aa6d3 [cfe] Report error on (un)assigned late variables
Closes #40601
Closes #41103
Closes #40946

Change-Id: I1a28f497ffe0be3d1f9e673f1e8be7a518bbfc7e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140403
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-23 14:48:53 +00:00
Johnni Winther 0e75a0650f [cfe] Handle mixing in Function
Closes #35477
Closes #35573

Change-Id: I0612641108caf1fa08da1aae7684e7f33dfe3b46
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140402
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-23 09:56:30 +00:00
Johnni Winther 2049335af3 [cfe] Improve message on ambiguous extension member access
Closes #40862

Change-Id: I7cc2c0cfbbc878709dc3ad645d8a4b37094056c9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140520
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2020-03-23 09:33:20 +00:00
Johnni Winther bd9cb563a4 [cfe] Handle forwarding constructors in hasConstConstructor computation
Closes #41070

Change-Id: If2f7120a29de97b4690f867c60aa6e21b1b777d5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139806
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-17 15:25:33 +00:00
Johnni Winther 5721a33077 [cfe] Compute signature as part of override dependencies
Change-Id: I893a8a31d78185ee73a8d175e63f13194e1cb991
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139501
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-17 14:42:02 +00:00
Johnni Winther d2950737b8 [cfe] Add test for covariant late final fields
Closes #40805

Change-Id: I896bce935803a951cfb8c9c0d0f70a6227de2413
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139464
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-16 08:30:08 +00:00
Johnni Winther e470662897 [cfe] Report error on opt-in exporting opt-out
Closes #41032

Change-Id: I45fbb4c5cc5e723d3638ceb650909764d5c8012d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139460
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-16 08:28:17 +00:00
Jens Johansen 0768b8e6cd [CFE] Better and more errors on type parameters when they're not allowed
Change-Id: Iefcc31ca09b76cced003cdfea7256a1b898dc3a9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139204
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-03-13 12:39:50 +00:00
Johnni Winther a303769fad [cfe] Use legacy erasure on constraint solving
Closes #40909

Change-Id: Ifd37037b27f978a0948309f134523c570af25c56
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139284
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-03-13 11:51:10 +00:00
Johnni Winther a5eb0b559c [cfe] Handle callable extension getters
Closes #40596
Closes #40713
Closes #39889

Change-Id: I183560b912e2f6f2c02d51278c0d28c8a6d67f99
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139203
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-13 10:46:39 +00:00
Johnni Winther 6c6144bb74 [cfe] Implement consolidated in ClassHierarchyBuilder
Closes #40414 and #40156



Change-Id: I066aa8ceef4f998230215fd9e9b446b2281cc3bc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138294
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-03-13 08:16:49 +00:00
Johnni Winther e865bd89d1 [cfe] Normalize nullabilities in opt out libraries
Closes #40526

Change-Id: Idf40bd430fad0f08d7cc117f988bfc5e2b432a46
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139200
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-12 21:58:17 +00:00
Johnni Winther ae2a25c537 [cfe] Handle FutureOr in late lowering
Closes #40783

Change-Id: Ia3afff050df8719bd7574c753639cde1ca321eff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138930
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-12 21:55:46 +00:00