Brian Wilkerson
b7623c1e73
Add another test to help keep analyzer in sync with Fasta
...
Change-Id: Ib6c7fdd713fc40948005910607664520cbcbc88f
Reviewed-on: https://dart-review.googlesource.com/13940
Reviewed-by: Dan Rubel <danrubel@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2017-10-13 23:06:16 +00:00
Harry Terkelsen
cbfb3b642d
Treat async-for-in statements as if they are wrapped in a try-finally
...
Change-Id: Ide40e69f93db199e2b452a4ee5acbbabe331bcbf
Reviewed-on: https://dart-review.googlesource.com/13921
Reviewed-by: Stephen Adams <sra@google.com >
Reviewed-by: Emily Fortuna <efortuna@google.com >
2017-10-13 22:19:46 +00:00
Jennifer Messerly
697e531c17
fix IdentityMap setter concurrent modification detection
...
Change-Id: Ib999210cf5709a4cef6a14a8d7fafe7b516f09c9
Reviewed-on: https://dart-review.googlesource.com/13641
Commit-Queue: Vijay Menon <vsm@google.com >
Reviewed-by: Vijay Menon <vsm@google.com >
2017-10-13 20:57:24 +00:00
Konstantin Shcheglov
6b5ba5351b
Implement combining outlines for top-level declarations.
...
R=ahe@google.com , kmillikin@google.com , paulberry@google.com , sigmund@google.com
Bug:
Change-Id: Id849e68d3026457bdddb98604b92c7424961bbd9
Reviewed-on: https://dart-review.googlesource.com/11649
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2017-10-13 20:32:24 +00:00
Paul Berry
27f5e7f9ee
Remove ClassHierarchy.forEachCrossOverridePair.
...
This method is no longer needed, since the front end iterates through
members directly to find cross overrides.
Change-Id: Ibc5180962a097c4d6194dbf4cbd1a0dea15050c2
Reviewed-on: https://dart-review.googlesource.com/13582
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-10-13 20:28:55 +00:00
Paul Berry
1dfdbae429
Test that generic covariance annotations are correct when based on inferred types.
...
Change-Id: I5d621aa47d088266efd86ee67c96111633b112ac
Reviewed-on: https://dart-review.googlesource.com/13625
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-10-13 19:46:37 +00:00
Konstantin Shcheglov
df459aa19d
Malbounded types should have all 'dynamic' type arguments.
...
See "19.8 Parameterized Types" in the specification.
"In short, any arity mismatch results in all type arguments being dropped, and
replaced with the correct number of type arguments, all set to dynamic. Of course,
a static warning will be issued."
R=ahe@google.com , paulberry@google.com , sigmund@google.com
Bug: https://github.com/dart-lang/sdk/issues/31062
Change-Id: Ia04b6c4da538582736617931eb7b7c20dc0a4259
Reviewed-on: https://dart-review.googlesource.com/13340
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
2017-10-13 18:44:34 +00:00
Brian Wilkerson
75908a5315
Fix recovery inside expressions
...
Change-Id: I20bc1c87c258cb99032e0d8099e88f56779fc509
Reviewed-on: https://dart-review.googlesource.com/13880
Reviewed-by: Dan Rubel <danrubel@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2017-10-13 18:06:05 +00:00
Brian Wilkerson
940b9e5fdf
Connect a Fasta error to an Analyzer error
...
Change-Id: I9b47e6712b65c2e97693bfef4c022109431660f1
Reviewed-on: https://dart-review.googlesource.com/13860
Reviewed-by: Dan Rubel <danrubel@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2017-10-13 18:05:44 +00:00
Brian Wilkerson
64eee95cb0
Minor clean-up of asserts and comments
...
Change-Id: Ib28a6ba789bfdf65f740863c28ca050512433736
Reviewed-on: https://dart-review.googlesource.com/13820
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Dan Rubel <danrubel@google.com >
2017-10-13 17:55:58 +00:00
Konstantin Shcheglov
49503ac2cc
Start using Kernel metadata support in KernelDriver and Analyzer.
...
Use it to implement documentation comments for typedef(s).
R=ahe@google.com , paulberry@google.com , sigmund@google.com
Bug:
Change-Id: I6f67f1c0e6b6f383a96e6bf6eee17f4786bc5f99
Reviewed-on: https://dart-review.googlesource.com/12700
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
2017-10-13 17:47:53 +00:00
Brian Wilkerson
2aa005b11b
Improved handling of semicolons
...
Change-Id: I85c42387bad18149bd2fb7718f6d40b82a95562f
Reviewed-on: https://dart-review.googlesource.com/13626
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Dan Rubel <danrubel@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2017-10-13 16:16:43 +00:00
Johnni Winther
f80860ddbd
Track exposure of this in inferrer
...
Change-Id: I07d899ed59fd28ffe258c518743c66aa20fa0540
Reviewed-on: https://dart-review.googlesource.com/13480
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-10-13 07:50:35 +00:00
danrubel
1582021556
Allow built-in keywords as top level function identifiers
...
Change-Id: I4287e8279d2ebe6f4460ce48409b7bd9ead16b96
Reviewed-on: https://dart-review.googlesource.com/13627
Commit-Queue: Dan Rubel <danrubel@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2017-10-12 23:48:05 +00:00
Brian Wilkerson
a22c8dc958
Recover when enum constants have metadata
...
Change-Id: I1432c3b2d4ce63c5520087c79dd33e48c57cee5b
Reviewed-on: https://dart-review.googlesource.com/13102
Reviewed-by: Peter von der Ahé <ahe@google.com >
Reviewed-by: Dan Rubel <danrubel@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2017-10-12 20:50:31 +00:00
danrubel
bde7c0c1ce
cleanup top level out-of-order tests
...
Change-Id: I473ed461ec754b172866462326e9eaae65ad9aff
Reviewed-on: https://dart-review.googlesource.com/13602
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2017-10-12 20:04:27 +00:00
Régis Crelier
ae94cbf3d6
Revert "[kernel] Support generic closures in VM's kernel frontend."
...
This reverts commit a273ff8314 .
Revert "[kernel] Support generic function types in the VM's kernel frontend."
This reverts commit 2cac57da09 .
Revert "[kernel] Completely remove type erasure."
This reverts commit 3ffacb3814 .
Change-Id: I8fdd40a6a8f34911028353f48249fdd4bf7dba76
Reviewed-on: https://dart-review.googlesource.com/13622
Reviewed-by: Alan Knight <alanknight@google.com >
Commit-Queue: Alan Knight <alanknight@google.com >
Commit-Queue: Régis Crelier <regis@google.com >
2017-10-12 20:01:11 +00:00
Brian Wilkerson
d13822df9b
Add support for replacing tokens to TokenStreamRewriter and use it in the parser
...
Change-Id: Icbd809f9baf4a88abc653f4df62d8c2e0457b677
Reviewed-on: https://dart-review.googlesource.com/13240
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Dan Rubel <danrubel@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2017-10-12 18:39:11 +00:00
danrubel
08544ff5af
address comment in "Refactor and update modifier warnings"
...
See https://dart-review.googlesource.com/c/sdk/+/11800/1/pkg/front_end/lib/src/fasta/parser/modifier_context.dart#18
Change-Id: I3d8ba9b8bb2d67761cfd321ac5cbb30061dc099f
Reviewed-on: https://dart-review.googlesource.com/13583
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2017-10-12 17:42:13 +00:00
Alexander Markov
8e5c172b43
[Kernel, VM] Add internal kernel binary format version
...
This CL adds internal binary format version to kernel binaries.
Kernel readers in the front-end and VM verify that the reader's format
version matches the format version in the binary file.
This improves detection and diagnostics of stale kernel binary files.
Change-Id: Ic69b16057397a84627040bdd6420ffa1852a4b3f
Reviewed-on: https://dart-review.googlesource.com/13280
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
Reviewed-by: Kevin Millikin <kmillikin@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2017-10-12 16:50:21 +00:00
Brian Wilkerson
c2f11254c8
Recover from a class declaration with no body
...
Change-Id: Ib92d79087841d89ef4dd660345aa22e4006f59c1
Reviewed-on: https://dart-review.googlesource.com/13580
Reviewed-by: Dan Rubel <danrubel@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2017-10-12 16:08:33 +00:00
Samir Jindel
3ffacb3814
[kernel] Completely remove type erasure.
...
Bug:
Change-Id: I146db24f3f745d9f87560b051f3e57b784de1cb4
Reviewed-on: https://dart-review.googlesource.com/12294
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2017-10-12 15:34:21 +00:00
Paul Berry
974d365e92
Get rid of ShadowProcedure._typeInferrer, since it is no longer used.
...
Also remove KernelProcedureBuilder.prepareTopLevelInference, whose
sole purpose was to populate it.
Change-Id: Id42e931ebe6a2b9da4f30e54fc3d33627f84a5b7
Reviewed-on: https://dart-review.googlesource.com/13581
Reviewed-by: Peter von der Ahé <ahe@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-10-12 14:55:11 +00:00
Samir Jindel
2cac57da09
[kernel] Support generic function types in the VM's kernel frontend.
...
Bug:
Change-Id: I3554562b409b35478437601f34e6263615409b38
Reviewed-on: https://dart-review.googlesource.com/12292
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2017-10-12 14:45:21 +00:00
Dmitry Stefantsov
41f1407ca8
[kernel-f11n] Prove that valid configuration is well-formed
...
Bug:
Change-Id: Ib7272cbe377f9e8c71ca4d289d170a0cc173ba6b
Reviewed-on: https://dart-review.googlesource.com/12640
Reviewed-by: Samir Jindel <sjindel@google.com >
2017-10-12 14:13:58 +00:00
Dmitry Stefantsov
6a5b0c7b60
[kernel-f11n] Add missing cases of configuration_wf and step
...
Bug:
Change-Id: I2c521a54a3d45b3908ebe0b6147a5cef1221e040
Reviewed-on: https://dart-review.googlesource.com/12441
Reviewed-by: Samir Jindel <sjindel@google.com >
2017-10-12 14:07:44 +00:00
Dmitry Stefantsov
fcd2abfe7b
[kernel-f11n] Define the properties of configuration validity
...
Change-Id: I8f312cb914042a8713eae9171c724708d986e09f
Reviewed-on: https://dart-review.googlesource.com/10540
Reviewed-by: Samir Jindel <sjindel@google.com >
2017-10-12 14:05:13 +00:00
Samir Jindel
a273ff8314
[kernel] Support generic closures in VM's kernel frontend.
...
Change-Id: I0866971dc633c27df55811cba734d7cca0e849d4
Reviewed-on: https://dart-review.googlesource.com/12290
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
2017-10-12 13:53:21 +00:00
Martin Kustermann
ff41877e04
Update incremental_perf.dart to use named changesets, add IKG benchmarks
...
Change-Id: I24d1e10bff363f021e201afbb996299f2c6a860d
Reviewed-on: https://dart-review.googlesource.com/13160
Commit-Queue: Martin Kustermann <kustermann@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-10-12 11:17:48 +00:00
Johnni Winther
99af2fef35
Handle initializers in inferrer.
...
Change-Id: I0f21682448da8e427a73b849c8e6c8cc523c8201
Reviewed-on: https://dart-review.googlesource.com/12940
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-10-12 08:08:03 +00:00
Johnni Winther
0daecdf552
Skip captured variables in refinement.
...
Change-Id: Iad54833db0dbdc683790fccec3dca4f5cf435657
Reviewed-on: https://dart-review.googlesource.com/12442
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-10-12 07:59:13 +00:00
Paul Berry
f29478aa4b
Remove AccessorNode and related code, since it is no longer used.
...
Change-Id: I17bdd017c7b585e72960ff0138fd0967d73e662c
Reviewed-on: https://dart-review.googlesource.com/13304
Commit-Queue: Paul Berry <paulberry@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2017-10-12 06:25:30 +00:00
Vijay Menon
0553e2ba15
Regen DDC SDK
...
TBR=rnystrom@google.com
Change-Id: I4406552de08e379cac8a75f9c8e0e353dd927a21
Reviewed-on: https://dart-review.googlesource.com/13440
Reviewed-by: Vijay Menon <vsm@google.com >
Commit-Queue: Vijay Menon <vsm@google.com >
2017-10-12 04:07:05 +00:00
Dan Rubel
9370149f69
fix keyword as identifer edgecase
...
This addresses the situation where a top level built-in keyword
such as "import" or "export" is used as an identifier
in a top level declaration.
Change-Id: I663ed00502eadd2c639f79e68d26345783911faa
Reviewed-on: https://dart-review.googlesource.com/13361
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2017-10-12 03:38:48 +00:00
Dan Rubel
0702178907
cleanup recovery tests
...
Change-Id: Idb6b7cb513af5de613a8d9e3718ed93f645cc08b
Reviewed-on: https://dart-review.googlesource.com/13362
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2017-10-12 03:36:53 +00:00
Dan Rubel
b00f57f9e6
refactor isKeywordOrIdentifier(token) to token.isKeywordOrIdentifier
...
Change-Id: Iefe1bb58f738649e8f420d543c33dcc9ec1eceb9
Reviewed-on: https://dart-review.googlesource.com/13360
Commit-Queue: Dan Rubel <danrubel@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2017-10-12 02:35:31 +00:00
Paul Berry
89a9768a3c
Use proxy objects to represent synthetic accessors.
...
Previously, we created genuine kernel objects to represent the
synthetic setters and getters associated with fields. This led to
problems, because a given field would have multiple synthetic setters
and getters associated with it, and those synthetic getters and
setters would fall out of sync with each other during type inference
and covariance propagation.
This CL changes the kernel objects representing synthetic setters and
getters so that they are proxy objects; they inherit most of their
functionality from the corresponding kernel representation, but they
override the properties having to do with types and covariance so that
they refer to the underlying field. This ensures that nothing gets
out of sync, since the field is the single source of truth about its
type and covariance.
Change-Id: Iff44c408e84ef34df337c81e7bfbd125d61020d8
Reviewed-on: https://dart-review.googlesource.com/13281
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-10-12 01:34:11 +00:00
Paul Berry
b2c128e44d
Drop pointers to InferenceNode objects as quickly as possible.
...
This should help reduce GC overhead.
Change-Id: I171aa1a24e4691d80a818d6ef3b11db0b3e3da84
Reviewed-on: https://dart-review.googlesource.com/13320
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-10-12 00:24:31 +00:00
Dan Rubel
1c7c72c679
Refactor and update modifier warnings
...
* Extract parse modifiers
into ModifierContext and ModifierRecoveryContext
* Recover gracefully given out-of-order modifiers
* Generate analyzer error codes
* Address comment in prior CL
https://dart-review.googlesource.com/c/sdk/+/10760/1/pkg/front_end/lib/src/fasta/parser/parser.dart#436
There are several more modifier error codes that need to be added.
I will tackle those in a subsequent CL.
Change-Id: I61e9182e14fa9d45b35029013a645329e6cc54ab
Reviewed-on: https://dart-review.googlesource.com/11800
Commit-Queue: Dan Rubel <danrubel@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2017-10-11 23:32:10 +00:00
Sigmund Cherem
606e8502f8
fix recovery on ||= and &&= in dart2js
...
Bug: https://github.com/dart-lang/sdk/issues/31061
Change-Id: I3f8667d5dab92d256122484a6fc83b3527228085
Reviewed-on: https://dart-review.googlesource.com/12760
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2017-10-11 22:37:17 +00:00
Harry Terkelsen
d62eb05435
Search for members in superclasses when searching for a class member
...
This changes 'hasConcreteMatch' to search the superclass chain in the
kernel implementation. This matches what the Element model does.
Change-Id: I6a0ab69bc7e6fe705139d6fa69fffc2346582702
Reviewed-on: https://dart-review.googlesource.com/12843
Commit-Queue: Harry Terkelsen <het@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2017-10-11 22:07:11 +00:00
Paul Berry
494d78efd5
Transition to new top level type inference logic.
...
With this CL, we stop creating the old AccessorNode objects and start
creating the inference nodes associated with the new ForwardingNode
infrastructure. This fully integrates top level type inference with
forwarding stub generation.
There is a small difference between the behavior of the old and new
type inference infrastructure: in the old infrastructure, when
inferring the type of a getter or setter, we would consider both
inherited getters and inherited setters. Now, we follow the spec.
This introduces some minor differences from analyzer functionality, so
the tests of this functionality are moved into the "inference_new"
directory.
Change-Id: Ie17df9abf1a3ab99e7d22683ffdf6d1b13ec86be
Reviewed-on: https://dart-review.googlesource.com/13180
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-10-11 21:32:10 +00:00
Konstantin Shcheglov
0920da5d52
One more pass to triage the rest of the tests.
...
I hope that's it for now.
At this point we need to fix Fasta problems to fix there tests.
R=brianwilkerson@google.com
Bug:
Change-Id: I68c4ea12a9f1ea524a3d15865f71675a91e18d66
Reviewed-on: https://dart-review.googlesource.com/13303
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2017-10-11 21:31:34 +00:00
P.Y. Laligand
7cc0fcb8cd
Added build target for the analysis service.
...
Change-Id: I8e249db3b3dab87ed74d16a45534d2a30acc2872
Bug:
Reviewed-on: https://dart-review.googlesource.com/13103
Reviewed-by: Zach Anderson <zra@google.com >
2017-10-11 21:28:26 +00:00
Konstantin Shcheglov
ae07611599
InstanceMemberInferrer is not used when resynthesizing elements from Kernel.
...
So, there is no reason to test it.
Actually it fails, because we don't have hasImplicitType for parameters or
hasImplicitReturnType for executables, so we don't know whether we
should replace dynamic types of not.
R=brianwilkerson@google.com
Bug:
Change-Id: Ic0dc157be941bfe9eeb40cf537f4026d0a123a70
Reviewed-on: https://dart-review.googlesource.com/13300
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2017-10-11 21:03:52 +00:00
Jennifer Messerly
8c36b4685f
fix #31049 , fix #31050 , avoid name collision for static members
...
Change-Id: I5a14315b99ace15aa6ac0c67f753bc3e1f39b3a9
Reviewed-on: https://dart-review.googlesource.com/12481
Commit-Queue: Jennifer Messerly <jmesserly@google.com >
Reviewed-by: Vijay Menon <vsm@google.com >
2017-10-11 21:00:02 +00:00
Konstantin Shcheglov
0a0c5f54cd
Fix accidential failures for StrictModeTest_Kernel and TypePropagationTest_Kernel.
...
I reported issues for reasons why they were failing with Kernel
and fixed mistakes in tests and mocks.
R=brianwilkerson@google.com
Bug:
Change-Id: Ide98582047ebc0b862a2a94a1e1543f0f84d6bfc
Reviewed-on: https://dart-review.googlesource.com/13260
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2017-10-11 20:36:45 +00:00
Paul Berry
7df0fb6c28
Add type propagation support for conditional expressions.
...
This required adding a few extra parser events to allow the type
propagator to update its state when the `?` and `:` are encountered
(similar to what was done for `if`).
Fixes #30620 .
Change-Id: I0d3ede8056fd8bab01ead5b242d00803286c9373
Reviewed-on: https://dart-review.googlesource.com/13182
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-10-11 20:21:22 +00:00
Konstantin Shcheglov
815737113d
Triage StrongModeLocalInferenceTest_Kernel and StrongModeStaticTypeAnalyzer2Test_Kernel.
...
R=brianwilkerson@google.com
Bug:
Change-Id: I5589eedbbbf53b9e09c10284ebdec20c4e76eccd
Reviewed-on: https://dart-review.googlesource.com/13104
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2017-10-11 19:41:09 +00:00
Konstantin Shcheglov
afaf47e29b
Triage the rest of StaticWarningCodeTest_Kernel as Fasta problems.
...
Unfortunately there are nothing we can fix at the Analyzer side yet.
R=brianwilkerson@google.com
Bug:
Change-Id: I859f8608833fcdf254bf811906475ffec871665c
Reviewed-on: https://dart-review.googlesource.com/13241
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2017-10-11 18:32:50 +00:00