Peter von der Ahé
6e13f3334d
Abstract noSuchMethod might not be an error.
...
Change-Id: Ie17371338a79d416f5bb8ccbae2b22cc2021a5b0
Reviewed-on: https://dart-review.googlesource.com/c/88835
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-01-14 13:06:30 +00:00
Sigmund Cherem
e636e1fa6f
Accept experimental flags in dart2js and enable set-literal tests, now supported
...
once we accept the flag.
Note: 3 tests are missing compile-time errors from the CFE. This is a known CFE
issue, we need to mark the tests as failng using the new workflow before we land
the CL.
Change-Id: I0eaf6c1d7e903e035c83d3338054a8f92d2d9296
Reviewed-on: https://dart-review.googlesource.com/c/88763
Commit-Queue: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-01-11 19:32:46 +00:00
Aske Simon Christensen
1842020a69
Fix empty set/map literal disambiguation rule.
...
The criterion for an empty set/map literal without type arguments to
become a set literal was implemented as "superclass of Set and not
superclass of Map". This CL changes it to the rule now stated in the
spec: "subtype of Iterable and not subtype of Map".
Change-Id: I52d3a11e29ed9b1feb0f2b52a3f4beebe3833e31
Reviewed-on: https://dart-review.googlesource.com/c/88828
Commit-Queue: Aske Simon Christensen <askesc@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2019-01-11 15:14:05 +00:00
Aske Simon Christensen
76be911f22
Enable set literals by default in the front-end tests.
...
Set literals can be disabled in individual suites by putting
"enableSetLiterals": "false" into the environment given to
FastaContext.create.
Also fixed a missing file offset on inferred empty set literals
which would trip up the front-end tests.
Change-Id: I76ad03e6ed03eb80045055f83fa0ab9acd62eed6
Reviewed-on: https://dart-review.googlesource.com/c/88722
Reviewed-by: Peter von der Ahé <ahe@google.com >
2019-01-11 15:14:05 +00:00
Peter von der Ahé
03098c1505
Implement DillClassBuilder.mixedInType
...
Change-Id: I5b19eba3decbfc40e00c9bdec2ba4d60cbe8cf79
Reviewed-on: https://dart-review.googlesource.com/c/88833
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Peter von der Ahé <ahe@google.com >
2019-01-11 12:45:43 +00:00
Peter von der Ahé
4547066f4b
Tweak Declaration API
...
Change-Id: I5a6f9b94cf9114ed7ab2c715b9a99cc31a64f9b0
Reviewed-on: https://dart-review.googlesource.com/c/88832
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-01-11 12:45:43 +00:00
Peter von der Ahé
c3b13ae5c1
Collect abstract members immediately instead of counting.
...
This simplifies diagnosing missing implementations, especially, the
ones inherited from interfaces.
Change-Id: I13705eee07960974a111d78f1eb986e77d27a468
Reviewed-on: https://dart-review.googlesource.com/c/88719
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-01-11 12:45:43 +00:00
Peter von der Ahé
deb9239790
Compute type arguments of dill types.
...
Change-Id: I6d83ff53d7d56b2c50c221b9dd0d4ff8f0d2a5b7
Reviewed-on: https://dart-review.googlesource.com/c/88718
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-01-11 12:45:43 +00:00
Peter von der Ahé
c41611d35b
Add non-final fields to setters
...
Change-Id: Ib42064cf762dae6eb0ff5bda4459ce69a9f78b26
Reviewed-on: https://dart-review.googlesource.com/c/88717
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-01-11 12:45:43 +00:00
Kevin Millikin
1314a6dbf7
[Kernel] Do not evaluate fromEnvironment constants
...
Instead of evaluating them to their default value, leave them
unevaluated.
Change-Id: Iefc7701b9993cae8f7f1eee37d904d21a89a1cd8
Reviewed-on: https://dart-review.googlesource.com/c/89002
Reviewed-by: Peter von der Ahé <ahe@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Kevin Millikin <kmillikin@google.com >
2019-01-11 10:23:51 +00:00
Aske Simon Christensen
90d22365d1
Convenience function to parse a list of experimental flags
...
Change-Id: Iaf25e53136bbe740756c7b047976a2483a12c8df
Reviewed-on: https://dart-review.googlesource.com/c/88840
Commit-Queue: Aske Simon Christensen <askesc@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-01-11 10:07:29 +00:00
Kevin Millikin
944984f015
[Kernel] Add syntax for unevaluated constants
...
Add Kernel syntactic support for constants constructed by
bool.fromEnvironment, int.fromEnvironment, and String.fromEnvironment.
These values are not necessarily available at compile time. Because
constants can depend on these values, there is also an unevaluated constant
that represents an expression depending on environment values.
This syntax is not yet produced by the Fasta compiler.
Change-Id: Ie96ea7f60a7efcd35ac802b320a00f398d41232e
Reviewed-on: https://dart-review.googlesource.com/c/88827
Commit-Queue: Kevin Millikin <kmillikin@google.com >
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2019-01-11 08:35:20 +00:00
danrubel
3f90e88288
first cut adding simple non-nullable migration to dartfix
...
... and address comments in https://dart-review.googlesource.com/c/sdk/+/88640
Change-Id: I26e0f70f7c112d9ac184e10475e519afd8118a1d
Reviewed-on: https://dart-review.googlesource.com/c/89046
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2019-01-11 01:59:59 +00:00
Jens Johansen
e0ede8791f
Fasta: Set fileEndOffset on Fields
...
Bug: #34742
Change-Id: Ia20acd0f30cbc64db875e756e1be7e053b9abf9b
Reviewed-on: https://dart-review.googlesource.com/c/88951
Reviewed-by: Peter von der Ahé <ahe@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
2019-01-10 11:39:57 +00:00
Jens Johansen
705701951a
Small cleanup in incremental compiler
...
Change-Id: I4ea16c95e6406b7bea73669d159c83c4c23b9802
Reviewed-on: https://dart-review.googlesource.com/c/88700
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2019-01-10 10:14:11 +00:00
Jens Johansen
05673b80fc
Suggest uploading dill file when failing to initialize from dill
...
Change-Id: I5cbc9ef08581206035b6af3a4fa71d1b6b0bca98
Reviewed-on: https://dart-review.googlesource.com/c/88572
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
Reviewed-by: Kevin Millikin <kmillikin@google.com >
2019-01-10 09:41:21 +00:00
Peter von der Ahé
e7495724b9
Remove TypeEnvironment.hierarchy
...
Change-Id: Ia32e2c0beb504e38f8dcb9bae33f4ee9f0e7daca
Reviewed-on: https://dart-review.googlesource.com/c/88825
Reviewed-by: Kevin Millikin <kmillikin@google.com >
Commit-Queue: Peter von der Ahé <ahe@google.com >
2019-01-10 05:21:24 +00:00
Peter von der Ahé
a1250467fe
Move member conflict detection to own method
...
Change-Id: I73ea21e502b5669c51fb32d0c44474938135e4c5
Reviewed-on: https://dart-review.googlesource.com/c/88716
Commit-Queue: Peter von der Ahé <ahe@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-01-09 13:46:25 +00:00
Aske Simon Christensen
0f1b9439b5
Use 'no-' prefix to disable an experiment.
...
Change-Id: I597a98802f6900d57ed4583c35b20790738e2f3a
Reviewed-on: https://dart-review.googlesource.com/c/88712
Reviewed-by: Paul Berry <paulberry@google.com >
Reviewed-by: Kevin Millikin <kmillikin@google.com >
Commit-Queue: Aske Simon Christensen <askesc@google.com >
2019-01-09 11:44:48 +00:00
Peter von der Ahé
de85d1661a
Implement DillClass.supertype
...
Change-Id: I58c048a6595a2b65a7f2c239ae2bc1e6d8aab2a4
Reviewed-on: https://dart-review.googlesource.com/c/88715
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Peter von der Ahé <ahe@google.com >
2019-01-09 11:33:16 +00:00
Peter von der Ahé
7ba199794d
Save transient state
...
Change-Id: I1c2405b1237b6017a92b789452671938e0c25705
Reviewed-on: https://dart-review.googlesource.com/c/88448
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Peter von der Ahé <ahe@google.com >
2019-01-09 10:48:06 +00:00
Peter von der Ahé
2bb2f5e834
Simplify ClassHierarchyBuilder.getNode
...
Change-Id: I2ca5197f6f69cf92641493ec865ccfe0bc716a15
Reviewed-on: https://dart-review.googlesource.com/c/88324
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-01-09 10:48:06 +00:00
Peter von der Ahé
34afa499a1
Merge interfaces only when necessary
...
Change-Id: I3d6f709df3e262447150abd84c30ef5a58a7a1d8
Reviewed-on: https://dart-review.googlesource.com/c/88323
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-01-09 10:48:06 +00:00
Peter von der Ahé
1dc920e0d7
Change names to reflect merge isn't used only for superclasses
...
Change-Id: I06a6fb3272e394ba2c7915f457c4c3ebf7d21d07
Reviewed-on: https://dart-review.googlesource.com/c/87966
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-01-09 10:48:06 +00:00
Peter von der Ahé
50ea6344f5
Use TypeEnvironment.getTypeAsInstanceOf instead of ClassHierarchy
...
Change-Id: I1682baeb336b8be3cb6c5874715ef8ba730561e0
Reviewed-on: https://dart-review.googlesource.com/c/88803
Commit-Queue: Peter von der Ahé <ahe@google.com >
Commit-Queue: Kevin Millikin <kmillikin@google.com >
Auto-Submit: Peter von der Ahé <ahe@google.com >
Reviewed-by: Kevin Millikin <kmillikin@google.com >
2019-01-09 10:08:03 +00:00
danrubel
2cb346bd0c
Add support for parsing complex nullable types
...
Change-Id: I38a59f96e299387b7266e46082d876105eb60f1e
Reviewed-on: https://dart-review.googlesource.com/c/88640
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2019-01-08 15:52:54 +00:00
Jens Johansen
ac99b68c00
Don't catch call to buildOutlines
...
This was meant to be a bandage until a real fix landed
(which it did a few days after the 'fix' landed).
While it might still 'fix' something, it also does so silently meaning
that we won't ever catch it if we keep this try block.
Change-Id: I12b69ca06accd0b3fd3c51e2c292e61157c40f71
Reviewed-on: https://dart-review.googlesource.com/c/88571
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2019-01-08 13:19:15 +00:00
Jens Johansen
199fdb4d9e
Dill loader.builders shouldn't have dart: uris removed
...
Change-Id: I96b2d995058a014af8d23addd66a893b9b740fe6
Reviewed-on: https://dart-review.googlesource.com/c/88569
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2019-01-08 13:15:14 +00:00
Kevin Millikin
8e486164a4
[Fasta] Enable running the constant evaluation pass
...
The experimental flag `constant-update-2018` selects front-end
constant evaluation. The transformation is run before performing any
backend-specific transformations.
Compiling dart2js in strong mode goes from 12 seconds to between 12.3
and 12.5 (with more variability, apparently).
Change-Id: I279f0e60a3197b4fb077a1e9641ea92cf1409612
Reviewed-on: https://dart-review.googlesource.com/c/88701
Commit-Queue: Kevin Millikin <kmillikin@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2019-01-08 12:19:53 +00:00
Peter von der Ahé
938665a290
Update comment to match parameter
...
Change-Id: I7d63ae36110d9baf2b00c713490e07962bd069b0
Reviewed-on: https://dart-review.googlesource.com/c/88706
Reviewed-by: Peter von der Ahé <ahe@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Peter von der Ahé <ahe@google.com >
2019-01-08 11:32:13 +00:00
Dmitry Stefantsov
113ca50ba3
[kernel] Add a step to fasta unit tests to check text serialization
...
Change-Id: I8d945fc9d75aad1c4275b6d3dd3f9e2ea884ea9f
Reviewed-on: https://dart-review.googlesource.com/c/88451
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2019-01-08 10:31:42 +00:00
Peter von der Ahé
dd47792f16
Replace isMergingInterfaces with an enum
...
Change-Id: I4af320373b38d301943e12e2e9916b5eccdd2f31
Reviewed-on: https://dart-review.googlesource.com/c/87964
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Peter von der Ahé <ahe@google.com >
2019-01-07 13:50:16 +00:00
Peter von der Ahé
f3677bb2e7
Merge interfaces when building hierarchy
...
Change-Id: I2d3db2fa653a4caa9f90bdc8557d80f5a2836a52
Reviewed-on: https://dart-review.googlesource.com/c/87641
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-01-07 13:50:16 +00:00
Peter von der Ahé
0008641bfd
Remove InterfaceResolver.legacyMode
...
Change-Id: Icc4d51dd4d2ff35d2048f8190ca134919c56f6a0
Reviewed-on: https://dart-review.googlesource.com/c/87588
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Peter von der Ahé <ahe@google.com >
2019-01-07 12:41:12 +00:00
Jenny Messerly
36ab8b18ea
[dartdevc] implement set literal and enable-experiments support
...
Change-Id: Ibc45b1b1792d62a8f176e6c2f2f5c1e3134942f1
Reviewed-on: https://dart-review.googlesource.com/c/88400
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com >
Reviewed-by: Vijay Menon <vsm@google.com >
Commit-Queue: Jenny Messerly <jmesserly@google.com >
2019-01-04 22:08:54 +00:00
danrubel
26d5345fb1
Fix TypeInfo.couldBeExpression in recovery situations
...
Change-Id: Ia9f1735b8ad28dbfcde1f54ac70628e85b65c1d3
Reviewed-on: https://dart-review.googlesource.com/c/88480
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2019-01-04 21:08:35 +00:00
Aske Simon Christensen
d0f1edb2da
Temporary desugaring of set literals.
...
When compiling for backends that have not yet implemented support for
the set literal kernel node, transform all such literals into either a
Set() creation with a sequence of add() calls (for non-const literals)
or a const map literal wrapped in a const _UnmodifiableSet object
(for const literals).
The transformation is only performed on bodies or field initializers
that contain at least one actual set literal (i.e. not including
ambiguous set/map literals that were resolved as map literals), so as
to minimize the overhead for code not containing any set literals.
Change-Id: I80318717f0e8481a73f7034e18beea6494fd44bc
Reviewed-on: https://dart-review.googlesource.com/c/87326
Commit-Queue: Aske Simon Christensen <askesc@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2019-01-04 14:25:49 +00:00
Peter von der Ahé
077ad9acfb
Change ticker name for checking supertypes
...
Change-Id: Id843dad34f91409ec1b317932ae2f0fa158736c6
Reviewed-on: https://dart-review.googlesource.com/c/87967
Commit-Queue: Peter von der Ahé <ahe@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
Auto-Submit: Peter von der Ahé <ahe@google.com >
2019-01-04 10:36:30 +00:00
danrubel
2111f507bd
rework parsing local variable declaration with nullable type
...
... and address comment in https://dart-review.googlesource.com/c/sdk/+/88301
Change-Id: I96c9bcf995fad58403ab455e907843a40339ef84
Reviewed-on: https://dart-review.googlesource.com/c/88303
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Dan Rubel <danrubel@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2019-01-03 19:53:32 +00:00
danrubel
5653dab2df
Revise is/as parsing for nullable types
...
Change-Id: I93cd4be70882ee318ea0f08848a23b4acdf35309
Reviewed-on: https://dart-review.googlesource.com/c/88302
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2019-01-03 15:49:18 +00:00
danrubel
c442539619
Remove fasta parser listener.beginExpressionStatement
...
... and rename endExpressionStatement to handleExpressionStatement.
This is needed for the next step in NNBD.
Change-Id: Ibed51f15a4e2d93d2b16a50e4e22e912f22d2171
Reviewed-on: https://dart-review.googlesource.com/c/88301
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-01-03 15:49:18 +00:00
Aske Simon Christensen
7475080928
Enable set literals by default in the parser
...
Change-Id: I854a7d35b05f95d05f0b13f67677d2e512db4eeb
Reviewed-on: https://dart-review.googlesource.com/c/87844
Commit-Queue: Aske Simon Christensen <askesc@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
Reviewed-by: Dan Rubel <danrubel@google.com >
2019-01-03 13:45:36 +00:00
Aske Simon Christensen
60f6ccf3e4
Type inference of set literals
...
Change-Id: Icb0f839defa96de186707a8cdc1046281d96fa6c
Reviewed-on: https://dart-review.googlesource.com/c/86931
Reviewed-by: Peter von der Ahé <ahe@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-01-03 13:45:36 +00:00
Aske Simon Christensen
451fdc41e6
Experimental flags in Fasta
...
Change-Id: Ifc807059d9b434934e077f8fe5845d723807640c
Reviewed-on: https://dart-review.googlesource.com/c/87843
Reviewed-by: Peter von der Ahé <ahe@google.com >
2019-01-03 13:45:36 +00:00
Peter von der Ahé
ff10e5dd22
Class Hierarchy Builder
...
A new approach to building the class hierarchy based on
Declarations/Builders. The new approach is that we perform
all kinds of override checks while building the hierarchy.
This is the first step of many, and it only builds the
hierarchy for class members (including superclasses, but not
interfaces).
The checks implemented so far are missing implementations,
and conflicts (can't override a method with a setter).
As I plan to reimplement most of Dart 2.0 semantics using a
bottom-up approach to type inference based on legacy mode,
I've changed the severity of MissingImplementationNotAbstract.
Change-Id: I002e0d0000aabe1623349d0c8119ca577c80ad01
Reviewed-on: https://dart-review.googlesource.com/c/87581
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Peter von der Ahé <ahe@google.com >
2019-01-03 10:43:45 +00:00
Dmitry Stefantsov
4579863064
[fasta] Handle type parameters of supertypes in type arguments checks
...
Closes #35470 .
Bug: http://dartbug.com/35470
Change-Id: I6b7ae9bb96ca099dc55bfdc8fddfa768eab060a2
Reviewed-on: https://dart-review.googlesource.com/c/87965
Commit-Queue: Kevin Millikin <kmillikin@google.com >
Auto-Submit: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Kevin Millikin <kmillikin@google.com >
2018-12-27 11:17:24 +00:00
danrubel
f0377b2f92
Add support for parsing simple nullable types
...
... as part of adding NNBD as outlined in
https://github.com/dart-lang/language/issues/110
This only supports parsing simple nullable types
such as int? and List<int>? while subsequent CLs
will add support for parsing more complex types.
Due to current parser limitations, it also only supports
nullable types in a limited number of statements such as
T? t;
if (x is String?) {}
In addition, address comments in
* https://dart-review.googlesource.com/c/sdk/+/87880
* https://dart-review.googlesource.com/c/sdk/+/87881
Change-Id: Ife4afadc0b72906fc0c4e9b1977ad838041c2a84
Reviewed-on: https://dart-review.googlesource.com/c/87920
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2018-12-21 12:36:07 +00:00
Dan Rubel
096e734b05
Replace //@NNBD with @pragma(analyzer:non-nullable*)
...
Change-Id: I90a8a23601c7939e400ecadd5f14ac0b4caf2e39
Reviewed-on: https://dart-review.googlesource.com/c/87881
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2018-12-20 21:13:37 +00:00
Dan Rubel
a80d93c81f
Add global analyzer non-nullable flag
...
... and plumb that flag through to the AstBuilder.
In addition, remove parser.parseSetLiterals flag in favor of enableSetLiterals
and update callsites
Change-Id: I10dcac0b3df3d0888844e4bf56977c80e03d6334
Reviewed-on: https://dart-review.googlesource.com/c/87880
Reviewed-by: Paul Berry <paulberry@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2018-12-20 21:06:17 +00:00
Peter von der Ahé
bbeee457e3
Add message parameter key for names
...
Change-Id: I1a01b3cc1bb3c9bc8da502f3b00db4d38fa9ee8b
Reviewed-on: https://dart-review.googlesource.com/c/87587
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2018-12-20 18:06:34 +00:00