Paul Berry
b8f81c45a5
Standardize on calling synthetic setter parameters '_'.
...
This has no effect on the generated kernel output; it just affects tests.
Also fix an incorrect type in field_forwarding_stub_explicit_covariant.dart.
Change-Id: Ic89d59a52648dc37a43cb12c4289611daaf422c6
Reviewed-on: https://dart-review.googlesource.com/15647
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-10-20 19:41:28 +00:00
Sigmund Cherem
a8461302aa
Disable strong mode type inference in the d2fe-legacy benchmark
...
Bug:
Change-Id: I3611194e4684402cc22164951af0eb3a3695c7f0
Reviewed-on: https://dart-review.googlesource.com/15645
Reviewed-by: Paul Berry <paulberry@google.com >
Commit-Queue: Sigmund Cherem <sigmund@google.com >
2017-10-20 19:27:38 +00:00
Sigmund Cherem
e8d765194a
Extract toKernelCombinators and make it more efficient
...
(extracted from the other CL that adds support for deferred loading)
Change-Id: I0e63a6fc2926fd451796b9bbed27e404d55e7f23
Reviewed-on: https://dart-review.googlesource.com/13662
Reviewed-by: Peter von der Ahé <ahe@google.com >
2017-10-20 19:14:54 +00:00
Sigmund Cherem
ec8dfb9b53
Add .addToExportScope to prefix builder, and handle ambigous builders
...
Change-Id: I2a353a9164f2b7811f17c37cb0db4ed68e9c7e04
Reviewed-on: https://dart-review.googlesource.com/13664
Reviewed-by: Peter von der Ahé <ahe@google.com >
Commit-Queue: Sigmund Cherem <sigmund@google.com >
2017-10-20 18:58:18 +00:00
Paul Berry
123b82b787
Add "as" checks to indexed assignments when needed due to return type contravariance.
...
Change-Id: Id6fb88ba32298e6d2298bae650bd0a0087ca5fb4
Reviewed-on: https://dart-review.googlesource.com/15641
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-10-20 18:30:00 +00:00
Vyacheslav Egorov
9cd7bc724d
[VM, Kernel] Fix sync* implementation in checked mode
...
Change abefb7b432 introduced a typing issue
instead of fixing it: _SyncIterator<T>._current was actually used to return
either a value of type T (for yield) or value of type Iterable<T> (for yield*)
from the move callback.
This change refactors implementation of _SyncIterator in such a way that
_current is only used to return value for yield and a separate field
_yieldEachIterable is used to return Iterable<T> for yield*.
Change-Id: I3e3c832bbc8986d6976ddbb0856a1b5a127d845b
Reviewed-on: https://dart-review.googlesource.com/15542
Commit-Queue: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2017-10-20 18:15:28 +00:00
Brian Wilkerson
32385ee32e
Address comments from CL 15200
...
Change-Id: I7a478686d2b721272ba178cc906f62af98c5891c
Reviewed-on: https://dart-review.googlesource.com/15620
Reviewed-by: Dan Rubel <danrubel@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2017-10-20 16:58:09 +00:00
Brian Wilkerson
1e34b32b2b
More comments and asserts in the parser
...
Change-Id: Ia33f9cbca07f8962392b4d8f79931fd6cd5fd54b
Reviewed-on: https://dart-review.googlesource.com/15202
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
Reviewed-by: Dan Rubel <danrubel@google.com >
2017-10-20 16:47:18 +00:00
Paul Berry
82d9969fdb
Remove unnecessary toValue conversions in conditional handling.
...
When compiling an if statement, the condition is converted to a value
via popForValue() in beginThenStatement(), so when the condition is
later popped in endIfStatement(), we can just pop() it directly.
A similar situation exists for the "condition" and "then" parts of a
conditional expression, and for the "receiver" part of a logical
operation.
Change-Id: I9f9f13263b284c99fbbfeb38e4a987d0d4fe9e30
Reviewed-on: https://dart-review.googlesource.com/15380
Reviewed-by: Peter von der Ahé <ahe@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-10-20 14:18:49 +00:00
Peter von der Ahé
f34d02dfd5
Preserve line breaks in messages.yaml
...
Change-Id: Ib830ffd257a6d2d351a169bc6a37fd7b00f026e6
Reviewed-on: https://dart-review.googlesource.com/11662
Commit-Queue: Peter von der Ahé <ahe@google.com >
Reviewed-by: Dan Rubel <danrubel@google.com >
2017-10-20 14:10:58 +00:00
Peter von der Ahé
226102b16a
Add README file to testcases directory.
...
Change-Id: Ifc70ea501ea7197bf187ce9470c7b9de850f78e0
Reviewed-on: https://dart-review.googlesource.com/10040
Reviewed-by: Aske Simon Christensen <askesc@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
2017-10-20 12:52:41 +00:00
Peter von der Ahé
ae0ac23e80
Prototype BulkCompiler API for fuzz testing.
...
Change-Id: Icf9134dccfa02ff36167287cd63abe9886e0f2e4
Reviewed-on: https://dart-review.googlesource.com/13985
Reviewed-by: Luke Church <lukechurch@google.com >
2017-10-20 12:44:15 +00:00
Peter von der Ahé
7559d79af3
Track offsets of unnamed mixins
...
Closes https://github.com/dart-lang/sdk/issues/30316
Change-Id: I858091104c4f13afb6d751f3d290a3127efb2b5f
Reviewed-on: https://dart-review.googlesource.com/15260
Reviewed-by: Dan Rubel <danrubel@google.com >
2017-10-20 12:24:37 +00:00
Jens Johansen
c8b2183bb5
[kernel] Disallow const x = [] and const y = {}
...
This CL makes fasta issue an error when trying to create a non-const
ListLiteral or MapLiteral in a context where const is required.
Bug:
Change-Id: I27ea151a38eb1198faa83a8cfa57453a4e225e1a
Reviewed-on: https://dart-review.googlesource.com/15460
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2017-10-20 09:38:57 +00:00
Konstantin Shcheglov
2747dae5d7
Copy uriToSource from compiled programs into IKG results.
...
This lets us to remove some code, and we start respecting the
`embedSourceText` option.
R=ahe@google.com , paulberry@google.com , sigmund@google.com
Bug: https://github.com/dart-lang/sdk/issues/31139
Change-Id: I2007f4b887fa9d417f18364bbb063bb3de3a08be
Reviewed-on: https://dart-review.googlesource.com/15240
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-10-19 22:14:47 +00:00
Brian Wilkerson
b7bdf60c92
Remove Parser.firstToken and cleanup TokenStreamRewriter
...
Change-Id: I812215872c6d06fc86336c47e17f73617ff9936c
Reviewed-on: https://dart-review.googlesource.com/15200
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-19 21:47:57 +00:00
Brian Wilkerson
f93fe1d7de
Cleanup use of isUserDefinableOperator in Parser
...
Change-Id: I3587957b64e2ae212dae54f6bf5582fd450c0ee7
Reviewed-on: https://dart-review.googlesource.com/15201
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2017-10-19 19:41:48 +00:00
Dan Rubel
3b1bfc3f5a
update ModifierContext recovery to reparse modifiers
...
Revise the ModifierRecoveryContext to reparse the modifiers that
have already been parsed rather than revisiting them in a loop.
Change-Id: I204c8bdb5329dfc559f83d2133b6589bfe663738
Reviewed-on: https://dart-review.googlesource.com/14880
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2017-10-19 19:16:47 +00:00
Paul Berry
270e4c186d
Add "as" checks to getter invocations when needed due to return type contravariance.
...
Change-Id: Ib0151e7f19021c87a08198580dcc6d56425882af
Reviewed-on: https://dart-review.googlesource.com/15221
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-10-19 19:08:28 +00:00
Paul Berry
f2a50e9b5b
Convert conditional "then" expression to a value before calling typePromoter.enterElse.
...
Otherwise this conversion will be done in the context of the "else"
expression, so promotions might not take effect properly.
Fixes #31132
Change-Id: I480f9c13636ce79f440b9c7e812f2bbaf217d975
Reviewed-on: https://dart-review.googlesource.com/14941
Commit-Queue: Paul Berry <paulberry@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2017-10-19 18:00:07 +00:00
P.Y. Laligand
ce79a77331
Remove Fuchsia-specific build files.
...
Also fix Fuchsia tools to account for new project location (//third_party/dart).
Change-Id: If89a934729c4fa44229eaca83219dbdf8bb700a8
Bug:
Reviewed-on: https://dart-review.googlesource.com/14800
Commit-Queue: Zach Anderson <zra@google.com >
Reviewed-by: Zach Anderson <zra@google.com >
2017-10-19 17:52:37 +00:00
Peter von der Ahé
a2f3a30fe0
Clean up imports and exports in builder.dart.
...
Change-Id: I7d4e5b7acf60d4f819ef514218927629228b8ce5
Reviewed-on: https://dart-review.googlesource.com/15101
Reviewed-by: Paul Berry <paulberry@google.com >
Commit-Queue: Peter von der Ahé <ahe@google.com >
2017-10-19 17:00:07 +00:00
Konstantin Shcheglov
3fedd483f3
Parse metadata for import/export directives and resynthesize in Analyzer.
...
R=ahe@google.com , paulberry@google.com , sigmund@google.com
Bug: https://github.com/dart-lang/sdk/issues/30284
Change-Id: I57af6f4d58b6de39f13b9656af25f0be6949cf79
Reviewed-on: https://dart-review.googlesource.com/14363
Reviewed-by: Peter von der Ahé <ahe@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2017-10-19 16:35:17 +00:00
Brian Wilkerson
1dba93ca09
Start adding assertions to AstBuilder
...
Change-Id: If979a7bda1f1482a779e6ef626c048cfbe0c2eb0
Reviewed-on: https://dart-review.googlesource.com/14960
Reviewed-by: Dan Rubel <danrubel@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2017-10-19 16:26:36 +00:00
Paul Berry
ca0933c487
Add the appropriate "as" nodes when needed due to return type contravariance.
...
Also add a test to verify that contravariance is properly handled for
method calls using "if-null" syntax (since this is handled by a
slightly different code path in the front end).
Change-Id: I93ee8b38ff39d78e25cac23ff048fcf69f15b5db
Reviewed-on: https://dart-review.googlesource.com/15000
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-10-19 16:13:26 +00:00
Brian Wilkerson
97c2e34bda
Add code block delimeters around grammar productions for formatting purposes
...
Change-Id: Ia02ca0b8d8315b44d7fb0d9f88c7766bff8363cc
Reviewed-on: https://dart-review.googlesource.com/14980
Reviewed-by: Dan Rubel <danrubel@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2017-10-19 16:04:25 +00:00
Brian Wilkerson
e8fd094b69
Recover from missing the formal parameters in a typedef
...
Change-Id: Ibb0e7d7c84116b2b20b56eb95000a0de37ad0bb7
Reviewed-on: https://dart-review.googlesource.com/14300
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-19 13:47:46 +00:00
Martin Kustermann
337f4ebe95
Make pkg/front_end/tool/incremental_perf_test.dart run on existent pkg/front_end/benchmarks/ikg
...
Change-Id: Icaf9906433846fb855f18e7b4e5716994bad739c
Reviewed-on: https://dart-review.googlesource.com/14402
Commit-Queue: Martin Kustermann <kustermann@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-10-19 06:38:35 +00:00
Paul Berry
6bedcfddda
Disable forwarding stub/covariance logic when type inference disabled.
...
Change-Id: I54ff3f731c2f29b028e7d4ba46bbf30302702839
Reviewed-on: https://dart-review.googlesource.com/15012
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-10-19 04:24:45 +00:00
Paul Berry
485aa072d9
Fix type inference of expressions in for loop initializers.
...
BodyBuilder converts an expression in a for loop initializer to the
initialization of a dummy variable. It needed to create this dummy
variable using ShadowVariableDeclaration to ensure that type inference
would be applied to the dummy variable.
Fixes #31133
Change-Id: Ibe5ed95f20429af633cbe8d49b06aabaa9df41fd
Reviewed-on: https://dart-review.googlesource.com/15001
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2017-10-18 22:44:23 +00:00
Paul Berry
6cdc718d20
Skip DDC when running front end analyzer checks.
...
Change-Id: Ic44572baf41abdf034870a9d8d20c0f7c862936d
Reviewed-on: https://dart-review.googlesource.com/14921
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-10-18 21:36:08 +00:00
Brian Wilkerson
332c0b9d6c
Introduce replacement for TokenStreamRewriter.insertTokenBefore
...
Change-Id: I821fbc0f938395cc0dd1583a82e3f9ca74bbcf2a
Reviewed-on: https://dart-review.googlesource.com/14660
Reviewed-by: Dan Rubel <danrubel@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2017-10-18 20:08:22 +00:00
Brian Wilkerson
26b04e205a
Generate an error when positional arguments are found after named arguments
...
Change-Id: Ic3cd913889e273a4efbd5a4e263625171aeb63e4
Reviewed-on: https://dart-review.googlesource.com/14560
Reviewed-by: Dan Rubel <danrubel@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2017-10-18 19:17:12 +00:00
Paul Berry
b51d5035aa
Annotate getter accesses with @callKind.
...
Change-Id: I56453f2824776f4d63de58a09f8ecc5b6f2df8ad
Reviewed-on: https://dart-review.googlesource.com/14622
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-10-18 17:51:07 +00:00
Brian Wilkerson
dc75e65afa
Recover from missing parentheses in control structures
...
Change-Id: I644ee3ec3d941c83f1634b86023f4b68cce7e1d9
Reviewed-on: https://dart-review.googlesource.com/14600
Reviewed-by: Dan Rubel <danrubel@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2017-10-18 17:08:26 +00:00
Konstantin Shcheglov
7b376a6a0f
Store relative URIs in LibraryPart(s).
...
Fix Analyzer resynthesizer to handle these relative URIs.
I hope that this will fix the exception in the reverted CL.
R=ahe@google.com , paulberry@google.com , sigmund@google.com
Bug:
Change-Id: Icd5e2707a23fa294bac152da38a2340912814131
Reviewed-on: https://dart-review.googlesource.com/14620
Reviewed-by: Peter von der Ahé <ahe@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2017-10-18 15:05:35 +00:00
Konstantin Shcheglov
c3a76ed636
Move all documentation comments into metadata.
...
R=ahe@google.com , kmillikin@google.com , paulberry@google.com , sigmund@google.com
Bug:
Change-Id: I05382fe275e7a3a0f18128508d30fe1438adffc4
Reviewed-on: https://dart-review.googlesource.com/14623
Reviewed-by: Peter von der Ahé <ahe@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2017-10-18 14:48:56 +00:00
Brian Wilkerson
3dc1d24e3e
Add more comments and assertions
...
Change-Id: I47bfbc89313e893a820917407f5f2c8547b7e4c3
Reviewed-on: https://dart-review.googlesource.com/14540
Reviewed-by: Dan Rubel <danrubel@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2017-10-18 13:16:12 +00:00
Dan Rubel
d11fb5ba20
Improve class method modifier recovery and error messages
...
This streamlines checks for valid methods modifiers in fasta
and improves recovery and error messages when method modifiers
are out of order or invalid.
Change-Id: I045cc4d7cc15945354abe49827a770d346d234a3
Reviewed-on: https://dart-review.googlesource.com/14360
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2017-10-18 01:30:55 +00:00
Sigmund Cherem
02252479ff
Adjustments to fasta_perf to have legacy-mode option
...
Change-Id: Icffaf744b3ceff51422c8d96ba2c227a23f6bceb
Reviewed-on: https://dart-review.googlesource.com/13937
Reviewed-by: Paul Berry <paulberry@google.com >
Commit-Queue: Sigmund Cherem <sigmund@google.com >
2017-10-17 23:19:31 +00:00
Paul Berry
c2d1260c4a
Annotate procedures with contravariant return types.
...
This will allow the front end to efficiently decide where to insert
"as" checks.
Change-Id: I4776488684acdbf356ed3cb286e8d516d18719e1
Reviewed-on: https://dart-review.googlesource.com/14507
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-10-17 20:20:40 +00:00
Paul Berry
18c87cbb64
Skip type inference for fields that have no type inferrer.
...
This can happen in certain error recovery circumstances.
Fixes #31124 .
Change-Id: Id814f2434ada93030b40f6dfcb5e62ec1a323d0e
Reviewed-on: https://dart-review.googlesource.com/14504
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-10-17 19:11:42 +00:00
Vyacheslav Egorov
abefb7b432
[kernel] Assign proper types and interface targets to nodes created by async transformer.
...
Bug: https://github.com/dart-lang/sdk/issues/31070
Change-Id: Iaedbd425fcb6d243c0bfa93495335658553a9301
Reviewed-on: https://dart-review.googlesource.com/14481
Commit-Queue: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Kevin Millikin <kmillikin@google.com >
2017-10-17 17:44:00 +00:00
Paul Berry
c85af82836
Don't try to resolve/finalize dependent forwarding stubs during "prepare" phase.
...
Resolution of method forwarding nodes, and inference of method types,
happens during the "prepare" phase of type inference, since in theory
method types and method forwarding nodes can only depend on methods in
base classes. Resolution of getter/setter forwarding nodes, and
inference of getter/setter/field types, happens later, after all
forwarding nodes have been created. This works properly for code that
is free of errors.
But if the code has errors, it's possible that a method might try to
override a getter, setter, or field. If this happens, we don't want
resolution of the method forwarding node, or inference of the method,
to trigger premature type inference of the getter/setter/field; if it
did, this might cause us to infer the wrong type for the
getter/setter/field, leading to user confusion.
This CL adds a check to ensure that we don't resolve any
getter/setter/field nodes during the "prepare" phase of type
inference.
Change-Id: I794d6ba5fde7937bbec3cf7c21a1c3c602e6bbd1
Reviewed-on: https://dart-review.googlesource.com/14364
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2017-10-17 16:12:12 +00:00
Aske Simon Christensen
60be83aed4
Reland "Suite for Fasta crashes and verification errors in language tests"
...
Remove obsolete "language" suite.
Original review: https://dart-review.googlesource.com/13741
Change-Id: I713fa2684fe478f6e9123d33ee7b7d2a961b1c00
Reviewed-on: https://dart-review.googlesource.com/14460
Reviewed-by: Peter von der Ahé <ahe@google.com >
Commit-Queue: Aske Simon Christensen <askesc@google.com >
2017-10-17 13:54:40 +00:00
Aske Simon Christensen
8a2a9e4622
Reland "Error on setter having not exactly one parameter"
...
Rewrite setter with invalid parameters into one with one parameter
and a body throwing a compile-time error.
Some analyzer tests fail until we sort out the expected form of the
generated kernel code in situations like this. This is tracked in
https://github.com/dart-lang/sdk/issues/31096
Closes https://github.com/dart-lang/sdk/issues/31069
Original CL: https://dart-review.googlesource.com/13080
Change-Id: I432240c33d6daf0ec6bfe2b73c609ab4762cda8c
Reviewed-on: https://dart-review.googlesource.com/14381
Reviewed-by: Peter von der Ahé <ahe@google.com >
Commit-Queue: Aske Simon Christensen <askesc@google.com >
2017-10-17 13:16:30 +00:00
Peter von der Ahé
6cc2014b3d
Fix computePlatformBinariesLocation for Windows.
...
Change-Id: Ic64e9c7a10923fe2e3f99ef708c2f19bb9ae802e
Reviewed-on: https://dart-review.googlesource.com/14420
Reviewed-by: Peter von der Ahé <ahe@google.com >
Commit-Queue: Peter von der Ahé <ahe@google.com >
2017-10-17 12:46:10 +00:00
Peter von der Ahé
b96ac4520a
Update most clients to use computePlatformBinariesLocation.
...
Change-Id: I6e6960c471b2fab3f0cd8a672da05d7699217410
Reviewed-on: https://dart-review.googlesource.com/12291
Commit-Queue: Peter von der Ahé <ahe@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-10-17 10:48:40 +00:00
Dan Rubel
35942b6d53
address comments and import cleanup
...
* rename TopLevelMethodModifierRecoveryContext.endToken
* update imports in modifier_recovery
Change-Id: Ie3956a8f62e14b1d1c4982048c99127c463e8b55
Reviewed-on: https://dart-review.googlesource.com/14280
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2017-10-16 23:43:19 +00:00
Brian Wilkerson
55a440a6ee
Report finding multiple library directives
...
Change-Id: If0e4441ddf7fd8db1b765ba6f06f56fdf3ce3106
Reviewed-on: https://dart-review.googlesource.com/14181
Reviewed-by: Dan Rubel <danrubel@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2017-10-16 23:18:42 +00:00