Dan Rubel
fd8c3f8436
Add more fasta parser switch statement recovery
...
This updates the fasta parser to gracefully recover
when a 'case' or 'default' keyword is not followed
by a colon.
In addition, the analyzer error code associated
with the fasta ExpectedButGot error template
has been changed
from UNEXPECTED_TOKEN
to EXPECTED_TOKEN.
Change-Id: Ic1cc01362b2ed796c0a0817504ac6aa9294fa9b3
Reviewed-on: https://dart-review.googlesource.com/30160
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2017-12-18 12:23:38 +00:00
Konstantin Shcheglov
31a0fe292d
Remember import prefix name for static references.
...
Bug:
Change-Id: Ib71a9cc8e6c65d597f24c20c0260f7f37ef3674f
Reviewed-on: https://dart-review.googlesource.com/28541
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
2017-12-16 05:09:35 +00:00
Dan Rubel
028773e032
Add fasta parser missing switch case recovery
...
Change-Id: I102586df07cf9178e47b5bb05e8b27af57f393c5
Reviewed-on: https://dart-review.googlesource.com/29920
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2017-12-16 01:34:53 +00:00
Paul Berry
f52cc1b382
Get rid of the clumsy while loop in inferInvocation.
...
See discussion in
https://dart-review.googlesource.com/c/sdk/+/29744/3/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart#892
Change-Id: I7b63269573749a61ff9e211d9df8676eae66b7e7
Reviewed-on: https://dart-review.googlesource.com/30000
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-12-15 22:45:53 +00:00
Paul Berry
ae9b0c42d7
Add type inference code to generate Instantiation nodes.
...
Fixes #31586 .
Note that none of the back-ends handle Instantiation nodes yet, so the
language_2 tests added in this CL
(instantiate_tearoff_after_contravariance_check_test,
instantiate_tearoff_of_call_test, and instantiate_tearoff_test) fail
pretty much across the board right now.
Includes two fixes to Instantiation.getStaticType and the kernel type checker:
- Previously, they attempted to perform substitution on the full
function type, which had no effect because the type parameters were
bound.
- The type checker was not checking that type parameter bounds were
satisfied.
Note that the front end doesn't yet check that type parameter bounds
are satisfied by the inferred type parameters. I will address that in
a follow-up CL.
Change-Id: Ib0ad7a5fc5f4a2fdc8c99abe1f2d3d15b21a4974
Reviewed-on: https://dart-review.googlesource.com/29744
Commit-Queue: Paul Berry <paulberry@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2017-12-15 20:41:43 +00:00
Dan Rubel
8239aa093e
Fix synthetic token offset and length
...
During fasta parser recovery, the offset and/or length of some
synthetic tokens was incorrect. This caused problems during
code completion.
Change-Id: Iace73d06bb5da3ae916c69b7823367d8fc6e16b8
Reviewed-on: https://dart-review.googlesource.com/29822
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2017-12-15 16:06:43 +00:00
Dan Rubel
c780e6a935
Add fasta parser map literal recovery
...
Change-Id: Icde67bdef748a2bce4811d61bda19e9e4a008d52
Reviewed-on: https://dart-review.googlesource.com/29820
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2017-12-15 16:05:54 +00:00
Dan Rubel
b16baaf8cf
Add fasta parser property access recovery
...
Change-Id: Iece1dc1ea8eeb0928ffbcdefdbbdb54cb4277e31
Reviewed-on: https://dart-review.googlesource.com/29740
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2017-12-15 12:47:22 +00:00
Mike Fairhurst
a9fe991cc5
First pass at plumbing fasta errors through to the analyzer. Hopefully this is
...
all satisfactory infrastructurally, organizationally, performance wise.
This does not handle summarizing errors so that we can produce them for existing
dill files, and some other places where special analysis is performed like on
the standard libs.
The CompilationMessage object is less rich than the Message object that other
code is using, see \#31644. However, workarounds included.
Bug:
Change-Id: I5b436b0de6051877801c1d128f43a9656df1b549
Reviewed-on: https://dart-review.googlesource.com/29400
Commit-Queue: Mike Fairhurst <mfairhurst@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2017-12-15 00:49:55 +00:00
Konstantin Shcheglov
92bf47e7e4
When vm_platform_strong.dill is loaded, and an SDK library is requested, we don't need cycles.
...
R=brianwilkerson@google.com
Bug:
Change-Id: I0bd39b5bd8fa414a59b27b21e1a63196ec8a4300
Reviewed-on: https://dart-review.googlesource.com/29620
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2017-12-14 21:10:49 +00:00
Dan Rubel
b709bc4bbe
Fix AstBuilder interpolation expression construction
...
Add a new handleInterpolationExpression fasta parser event
so that AstBuilder can correctly construct interpolation expressions
with left and right brackets.
Change-Id: Icca977067fe3a28dbab83488108c7286ec135dca
Reviewed-on: https://dart-review.googlesource.com/29541
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2017-12-14 19:18:16 +00:00
Aske Simon Christensen
d5fd7a3007
Eliminate error flag from library builder.
...
Change-Id: I4fe70ba733c80dcfa95b86447d1094b7338d83f2
Reviewed-on: https://dart-review.googlesource.com/29588
Reviewed-by: Peter von der Ahé <ahe@google.com >
Commit-Queue: Aske Simon Christensen <askesc@google.com >
2017-12-14 14:53:46 +00:00
Peter von der Ahé
f42359cdd1
Remove collectAllClasses
...
Change-Id: I12390cc3a3f6dde2b2abe5ed5da4e6c5ce114ba7
Reviewed-on: https://dart-review.googlesource.com/28725
Commit-Queue: Peter von der Ahé <ahe@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2017-12-14 10:18:25 +00:00
Peter von der Ahé
7a40a6c3da
Report an error on all classes involved in a cycle
...
Change-Id: I80221caf1f17acfe50b3c77da8e86e1bff54c67f
Reviewed-on: https://dart-review.googlesource.com/28724
Commit-Queue: Peter von der Ahé <ahe@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2017-12-14 08:47:25 +00:00
Dan Rubel
3f273903bb
Add fasta parser incomplete field recovery
...
Change-Id: Ifb948c752d8cda3afcd39f80d4681a25fac9e3a8
Reviewed-on: https://dart-review.googlesource.com/29445
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2017-12-14 01:25:45 +00:00
Sigmund Cherem
e0e94eca46
Workaround issue #31579 .
...
Temporarily use the patch URI for procedures and constructors and adjust
file-offset on class metadata to workaround issue #31579 .
This change should be reverted when we have proper tracking of both origin and
patch URIs for each patched element.
Change-Id: I451a39b57cb121c2de3b1a324adc8cdbb5e8962c
Reviewed-on: https://dart-review.googlesource.com/29004
Commit-Queue: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2017-12-13 21:30:24 +00:00
Samir Jindel
56ecbbde4b
[kernel] Support 64-bit integer literals correctly in Fasta.
...
Bug:
Change-Id: Idfb037e79d247889fe6a7d9a9b475ca4f8637080
Reviewed-on: https://dart-review.googlesource.com/27800
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2017-12-13 20:35:19 +00:00
Sigmund Cherem
f34af36ef9
[pkg:kernel] Add fileUri to Constructors
...
We have a fileUri for fields and procedures and it was missing in constructors.
This is needed to be able to correctly store the patch URI in patched
constructors and to be able to workaround
https://github.com/dart-lang/sdk/issues/31579 .
Change-Id: Ic80d3dc87450ada8b39b555e9b16e162d0e40b45
Reviewed-on: https://dart-review.googlesource.com/29003
Commit-Queue: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
Reviewed-by: Kevin Millikin <kmillikin@google.com >
2017-12-13 19:35:34 +00:00
Dan Rubel
3ab29148f4
Add fasta parser cascade recovery
...
Change-Id: I1cf32604acf2124a9d61621fbb4cfb9343d98d33
Reviewed-on: https://dart-review.googlesource.com/28840
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2017-12-13 18:30:25 +00:00
Peter von der Ahé
e816c3fbc1
Remove unused argumentsWithMissingDefaultValues
...
Change-Id: I0961e74144fd9d86942e88cf525fe71e9a9c2b41
Reviewed-on: https://dart-review.googlesource.com/28740
Reviewed-by: Jens Johansen <jensj@google.com >
Commit-Queue: Peter von der Ahé <ahe@google.com >
2017-12-13 16:48:24 +00:00
Dan Rubel
ebddad2329
Fix fasta parser recovery of redirection in non factory
...
Change-Id: Ia9943fb3c600a042b71bd2901cf962c06f61b523
Reviewed-on: https://dart-review.googlesource.com/28940
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2017-12-13 15:24:55 +00:00
danrubel
1d174010cc
fasta parser parseMethod cleanup
...
Change-Id: I67527349274f7422ca5ce33263c66fb8e88e23f9
Reviewed-on: https://dart-review.googlesource.com/28980
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2017-12-13 15:07:05 +00:00
Peter von der Ahé
40d80969d7
Track location for invalid types
...
Change-Id: I6c500f977498b5e54e581273bf3a3b171fc2e61b
Reviewed-on: https://dart-review.googlesource.com/28720
Reviewed-by: Aske Simon Christensen <askesc@google.com >
Commit-Queue: Peter von der Ahé <ahe@google.com >
2017-12-12 15:34:31 +00:00
Peter von der Ahé
0cad7e3168
Support reusing source library builders
...
Change-Id: Idc884e9c733bad0cb3e15be3cbaf248e8371196a
Reviewed-on: https://dart-review.googlesource.com/28663
Reviewed-by: Jens Johansen <jensj@google.com >
2017-12-12 15:02:11 +00:00
Brian Wilkerson
96c3b2a24d
Convert Parser.rewriteAndRecover to return the token before the insertion
...
Change-Id: Ib7db1a7e48b48f2137edacd921b35d5c86313419
Reviewed-on: https://dart-review.googlesource.com/28521
Reviewed-by: Peter von der Ahé <ahe@google.com >
Reviewed-by: Dan Rubel <danrubel@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2017-12-12 14:16:45 +00:00
Dan Rubel
c284c428bb
Add fasta parser type parameter recovery
...
Change-Id: I6363aa558b2ac6dec3fb3c7ba1abd82dd8e98874
Reviewed-on: https://dart-review.googlesource.com/28060
Commit-Queue: Dan Rubel <danrubel@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2017-12-12 14:06:40 +00:00
Peter von der Ahé
690b8865f5
Compute dependencies instead of strong components
...
Change-Id: I1d20ffc26951669391eaa2a67c02932a264d5eb1
Reviewed-on: https://dart-review.googlesource.com/28305
Reviewed-by: Jens Johansen <jensj@google.com >
2017-12-12 12:22:37 +00:00
Peter von der Ahé
c9026e446e
Pass offset to buildSupertype
...
Change-Id: I4a1cf524e7edbb9bc8d435fbea8a6b4eb440a077
Reviewed-on: https://dart-review.googlesource.com/28302
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2017-12-12 12:22:37 +00:00
Peter von der Ahé
08aa7e9114
Add context for override warnings
...
Change-Id: Icc53b580fddae02fa07341a004dc602db612dc0a
Reviewed-on: https://dart-review.googlesource.com/28301
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2017-12-12 12:22:37 +00:00
Peter von der Ahé
a12ebf65e3
Add context to ClassBuilder diagnostics API
...
Change-Id: I823a800293b059857895bf38698fca487323e4f2
Reviewed-on: https://dart-review.googlesource.com/28300
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2017-12-12 12:22:37 +00:00
Peter von der Ahé
cac6551376
Always clear StringToken canonicalizer after running Fasta
...
Change-Id: If994a644c2089e3e9cb57232baceb6b622106d19
Reviewed-on: https://dart-review.googlesource.com/28282
Reviewed-by: Dan Rubel <danrubel@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2017-12-12 12:22:37 +00:00
Peter von der Ahé
a70aba8efc
Add ikg-variant constant to pick Fasta
...
Change-Id: I0826e32f4820a9c4ccb86c47b7cd8114320ae649
Reviewed-on: https://dart-review.googlesource.com/28281
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2017-12-12 12:22:37 +00:00
Peter von der Ahé
31b512faa2
Implement reusing libraries not affected by invalidated URIs
...
Change-Id: I2fbb6daaa8fe6ca5b136c639194ec49ae31c385f
Reviewed-on: https://dart-review.googlesource.com/27721
Reviewed-by: Jens Johansen <jensj@google.com >
Commit-Queue: Peter von der Ahé <ahe@google.com >
2017-12-12 11:26:10 +00:00
Konstantin Shcheglov
5c580dbe21
Remember explicit static get/assign Class and offset.
...
Revert merging ResolutionApplier with ValidatingResolutionApplier.
Bug:
Change-Id: Ie55ebdcb5d63be26720156a28a68f2727ebc96d3
Reviewed-on: https://dart-review.googlesource.com/28380
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2017-12-11 21:46:13 +00:00
Brian Wilkerson
fcfdb8a4d5
Replace TokenStreamRewriter.insertToken with insertTokenAfter
...
Change-Id: I110099eaf0db7f4b09a8225ffaf674e132ce3d43
Reviewed-on: https://dart-review.googlesource.com/28260
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Dan Rubel <danrubel@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2017-12-11 21:24:53 +00:00
Paul Berry
7b9025b407
Report errors when type inference fails due to a circularity.
...
Change-Id: I48e75d86140483d5f3b9c3ad17e47fe2dfdb722e
Reviewed-on: https://dart-review.googlesource.com/28361
Commit-Queue: Paul Berry <paulberry@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2017-12-11 21:24:13 +00:00
Paul Berry
1c6e907fc8
Report errors when type inference fails due to inconsistent overrides.
...
I will have a follow-up CL to cover type inference failures due to
circularities.
Change-Id: I8c9af501c150d4707ad06e6bbcdc3cabdfbf9207
Reviewed-on: https://dart-review.googlesource.com/28180
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2017-12-11 17:02:45 +00:00
Dan Rubel
6b73954d6c
Update popList to remove popped values from the stack
...
Change-Id: I0d6f9a2550c7b49e06e4b18ad3473f679f85d377
Reviewed-on: https://dart-review.googlesource.com/28080
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2017-12-11 16:15:21 +00:00
Paul Berry
71b5fa86db
Don't invoke type inference listener on synthetic for-in loop assignment.
...
This avoids the need for a clumsy workaround in the analyzer.
Change-Id: I2ee2ec25a7d13ccaccc4f5b817cf2026f4547378
Reviewed-on: https://dart-review.googlesource.com/27962
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-12-09 00:09:50 +00:00
Paul Berry
ea7b31be82
Get rid of class ShadowSyntheticStatement, which is no longer used.
...
Change-Id: I18d325efb5c41babb1783e775ad148a6865ff443
Reviewed-on: https://dart-review.googlesource.com/27960
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-12-08 23:45:50 +00:00
Paul Berry
3e329b7996
Ensure that forwarding stubs do not forward to other forwarding stubs.
...
Fixes #31580
Change-Id: I3b58eedd4036ae42148fdcec74df6c79ed0efd26
Reviewed-on: https://dart-review.googlesource.com/27860
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-12-08 19:02:34 +00:00
Konstantin Shcheglov
8a510b6df9
Remember explicit static invocation Class and offset.
...
So, on Analyzer side each MethodInvocation with a target has the
reference and the type for this target.
Bug:
Change-Id: I76f142da300910445b3a3fe016fed4d04219e9b6
Reviewed-on: https://dart-review.googlesource.com/26402
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2017-12-08 18:07:50 +00:00
Konstantin Shcheglov
39b3e79dfe
Apply resolution to CatchClause.
...
R=brianwilkerson@google.com , paulberry@google.com
Bug:
Change-Id: I0203f510802b9b258da608231957c9383f677360
Reviewed-on: https://dart-review.googlesource.com/27503
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
2017-12-08 16:56:18 +00:00
Paul Berry
9a59be4777
Store the interface target of a forwarding stub.
...
This is a temporary measure to allow the analyzer team to make
progress until #31519 is fixed.
Change-Id: I056505ed0308c5b2ea3e3664a8943549c3c8548c
Reviewed-on: https://dart-review.googlesource.com/27460
Reviewed-by: Kevin Millikin <kmillikin@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-12-08 16:48:41 +00:00
Brian Wilkerson
fea3faa7f0
Replace some uses of closeBraceTokenFor to avoid the need to call previous
...
Change-Id: I14e12f8a90a9cf9fc31579257cd89ee633264172
Reviewed-on: https://dart-review.googlesource.com/27260
Reviewed-by: Dan Rubel <danrubel@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2017-12-08 15:48:01 +00:00
Peter von der Ahé
5bd939bb59
Implement Dijkstra's path-based strong component algorithm
...
Change-Id: I2d8e395231861b8c7e760b929b53e7e5053fed8b
Reviewed-on: https://dart-review.googlesource.com/27222
Reviewed-by: Jens Johansen <jensj@google.com >
Commit-Queue: Peter von der Ahé <ahe@google.com >
2017-12-08 08:26:12 +00:00
Paul Berry
12dc862d9e
When type inferring closures, change Null arguments to Object.
...
Fixes #31546 .
Change-Id: I1c69947f4589b6901ac11b2e6c9f6c3624678ad4
Reviewed-on: https://dart-review.googlesource.com/27411
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-12-08 00:05:39 +00:00
Paul Berry
d35f6c79cd
Set PropertySet.dispatchCategory.
...
Fixes #31437 .
Change-Id: I9ba84f8a3660e6bbd4dd86761b8f03cd3b414c00
Reviewed-on: https://dart-review.googlesource.com/27086
Commit-Queue: Paul Berry <paulberry@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2017-12-07 17:24:39 +00:00
Dan Rubel
1ba0dbdb8a
Improve local variable recovery some more
...
Change-Id: I0b1bb3e956e501416cbc786ccfc0ab98ead27946
Reviewed-on: https://dart-review.googlesource.com/27200
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2017-12-07 16:07:46 +00:00
Dan Rubel
87a3998f71
Improve local variable recovery
...
Change-Id: Ib3d84d2e40bbadee6bf1ccf81c6afb9669765e84
Reviewed-on: https://dart-review.googlesource.com/26901
Commit-Queue: Dan Rubel <danrubel@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2017-12-07 15:28:15 +00:00