Dan Rubel
a4b67bd6ce
add regression test for issue 37285
...
Change-Id: Ieb2636ba8404c95a6b3027bd5fccf02876940933
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106501
Reviewed-by: Aske Simon Christensen <askesc@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2019-06-20 21:04:37 +00:00
Dan Rubel
683ea6dc67
add fasta extension method test
...
Change-Id: I8de4f01463aa141ac4104d98b8ba42f970e32021
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103881
Commit-Queue: Dan Rubel <danrubel@google.com >
Auto-Submit: Dan Rubel <danrubel@google.com >
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2019-06-20 20:55:07 +00:00
Jens Johansen
e6647f0769
[cfe] Fixes to part with parts
...
Before this CL we could both crash and add wrong metadata to "part"
nodes when a part defined other parts.
This CL fixes it by
a) Not resetting a counter so *every* part in a part will be out of
bounds when trying to reference it; and
b) Check if a part directive is in bounds and ignore it if it isn't
(an error should already have been issued).
Change-Id: I3d31f2577b2120df6461c9cc1002131dbee9dbbc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106641
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-06-19 11:25:05 +00:00
Jens Johansen
a878514cf5
Add frontend testcases for part with part(s) in it
...
Currently there's at least two issues:
* We can crash
* We can add metadata to things they weren't meant for
Change-Id: I4e277ea614ce9faa25b2bf1c5a16a5e877df225b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106640
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
2019-06-19 10:56:55 +00:00
Dmitry Stefantsov
39dbaecfc1
Remove tests relying on contravariant uses of varaibles in supertypes
...
Change-Id: Ie614d8f96bbe534117f83528b41fe63fdfa9c9c1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103525
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Erik Ernst <eernst@google.com >
2019-05-28 09:56:43 +00:00
Dmitry Stefantsov
e6e2020fb2
[fasta] Allow only covariant uses of type parameters in supertypes
...
Closes #35792 .
Bug: http://dartbug.com/35792
Change-Id: I1c647c74e1e8f8892fd76b735085b457e770f5b4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103521
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2019-05-28 09:56:43 +00:00
Kevin Millikin
07a45e9d4c
[cfe] Transform collections before set literals
...
The VM uses the collection and set literal transformations. The set
literal transformation assumes that collections have already been
transformed. This was not done correctly when translating a
list (e.g., constructor initializers).
Fixes https://github.com/dart-lang/sdk/issues/37027
Change-Id: If7a6bda55f8cf0efd761fd8932d3a9e2c60db19b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103134
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
Auto-Submit: Kevin Millikin <kmillikin@google.com >
2019-05-22 07:30:46 +00:00
Dmitry Stefantsov
f62ab5ed3d
[fasta] Allow super-bounded types as bounds of type variables
...
Change-Id: If1f10d8e5b6d6288696926dc3cab6ad8a3b8d446
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/79701
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2019-05-21 12:25:10 +00:00
Jens Johansen
dcc157633d
Offset from class when reporting errors on synthetic constructors
...
Bug: 36669
Change-Id: I11b5312e4023cd7368a4a3e36cff66398dadd69c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100960
Reviewed-by: Kevin Millikin <kmillikin@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
2019-05-02 06:57:43 +00:00
Jens Johansen
b36734f4da
Fix crash when duplicate fields have annotations
...
Fixes #36793 .
Change-Id: I007699978219dc642e23951ab78858504a192c03
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100646
Reviewed-by: Kevin Millikin <kmillikin@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
2019-05-01 06:38:36 +00:00
Jens Johansen
30e21f3dc0
Don't crash when additional exports contain duplicate names
...
Fixes #36647
Change-Id: I45019b2113fde5bcd1f5e4227f7a1d86c570001f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100645
Reviewed-by: Kevin Millikin <kmillikin@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
2019-05-01 06:38:34 +00:00
Jens Johansen
0325d50db2
[CFE] Add disambiguation for type parameters if needed
...
Change-Id: I440d8aabbc0eb3fe4242c769cca5ccef2dfe8948
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99150
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2019-04-30 11:00:58 +00:00
danrubel
896f1c4bb9
CFE tests for issue 36400
...
Change-Id: I05139ce86177fe32cae857e410f759d365dc7bde
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98503
Commit-Queue: Dan Rubel <danrubel@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-04-04 15:48:30 +00:00
Jens Johansen
8ce2d7a4e1
[CFE] Better error messages on errors with user definable operators
...
Fixes #36383
Change-Id: I24fd51bdb3ead75973009fe515819f9c8354e1b0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98332
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Kevin Millikin <kmillikin@google.com >
2019-04-02 10:46:18 +00:00
Dmitry Stefantsov
49a7fa1c11
[cfe] Add inference and type checks for if-elements in lists and sets
...
Change-Id: Iad4e6a6ed86e17f97f6bb7ad16f2bff20ab84fae
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97925
Reviewed-by: Kevin Millikin <kmillikin@google.com >
2019-03-26 17:23:10 +00:00
Vyacheslav Egorov
c9ecdabe5d
Revert "Combine override checks and override-based inference in one phase"
...
This reverts commit 9db4119b67 .
Revert "Change default of 'keepFields' in constant transformation to true"
This reverts commit b1e14cbe5f .
Revert "[fasta] Don't create forwarding stub if there's already a member"
This reverts commit 51da94da76 .
These commits are reverted to unblock rolls into Flutter.
b1e14cbe5f is reverted because it contained
changes that prevented clean revert of the other CLs.
Change-Id: I8d3c00f0c1b146f4debe7f1a1a7de75be154e265
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97802
Commit-Queue: Alexander Aprelev <aam@google.com >
Commit-Queue: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
2019-03-25 19:40:26 +00:00
Dmitry Stefantsov
51da94da76
[fasta] Don't create forwarding stub if there's already a member
...
Change-Id: I5c7fd3ef5bfa5538f14b6b143de0f57e8dde3142
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97636
Reviewed-by: Aske Simon Christensen <askesc@google.com >
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
2019-03-25 14:09:26 +00:00
Peter von der Ahé
9db4119b67
Combine override checks and override-based inference in one phase
...
Change-Id: I2760f72f4eaa44bd192747179e843f017db30874
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97301
Commit-Queue: Peter von der Ahé <ahe@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-03-22 08:59:48 +00:00
Kevin Millikin
4daa9b94ea
[cfe] Compile if elements in lists and sets
...
If elements are compiled to if statements. The type inference rules
including insertion of runtime checks are not yet implemented.
Change-Id: Iaa7ab709a7acacf952887b17ac1081a9fecd7cef
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97200
Commit-Queue: Kevin Millikin <kmillikin@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-03-20 08:43:03 +00:00
Peter von der Ahé
c9efa472da
Remove instrumentTopLevelInference as it is redundant with expectation files
...
Change-Id: I1ce14796ba7d6976ae209f90f7c5f09226f3728e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97300
Commit-Queue: Peter von der Ahé <ahe@google.com >
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2019-03-20 06:52:13 +00:00
Peter von der Ahé
6e1888af6b
Circular type inference leads to InvalidType
...
Change-Id: I82c57a485b9293a05649b8420e7d78a2c2f922c9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97100
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2019-03-20 06:52:13 +00:00
Peter von der Ahé
da3c23bdaa
Test override-based inference when inheriting conflicting types
...
Change-Id: If7c1b0bf3111b05c5e2b083da749453a4ba9e675
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96648
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2019-03-13 06:46:21 +00:00
Dmitry Stefantsov
1da7c0d472
[cfe] Fix type checks in spreads within lists and sets
...
Change-Id: Id0eb5bc798fdd425cf1bc46d60efb3a1d5455938
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95383
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Kevin Millikin <kmillikin@google.com >
2019-03-05 19:54:11 +00:00
Dmitry Stefantsov
09a1cf67e6
[cfe] Don't replace spreads with invalid expressions after inference
...
Change-Id: Ie6081b1471ee8b1697fe93f8b79b630bf6577fe7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95120
Reviewed-by: Kevin Millikin <kmillikin@google.com >
2019-03-05 19:54:11 +00:00
Dan Rubel
e033b676dd
fix parser crash in unterminated string literal inside unterminated interpolation
...
Fix https://github.com/dart-lang/sdk/issues/35900
Change-Id: I96d83e0c93d9e9c22d5b30048dc210672b1c003c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95043
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2019-03-05 15:35:58 +00:00
Dmitry Stefantsov
b36c56ff84
[cfe] Add type inference for spreads in list literals
...
Change-Id: I4076fe82a0b4c0780dc53cc51f9abba3b1d85e8c
Reviewed-on: https://dart-review.googlesource.com/c/94520
Reviewed-by: Kevin Millikin <kmillikin@google.com >
2019-03-01 15:17:13 +00:00
Dmitry Stefantsov
187d6ceb20
[kernel] Add statements to Kernel (de)serialization verifier
...
Change-Id: I560a3cebf2b9f116b02cd1803d9fde4c50a1bf41
Reviewed-on: https://dart-review.googlesource.com/c/92562
Reviewed-by: Kevin Millikin <kmillikin@google.com >
2019-02-20 12:40:21 +00:00
Dmitry Stefantsov
88fea76f58
[kernel] Add text (de)serialization for simple function types
...
Change-Id: Ied1be7c530793f94fea0c71ef8112a4524d6b815
Reviewed-on: https://dart-review.googlesource.com/c/92289
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Kevin Millikin <kmillikin@google.com >
2019-02-08 13:39:35 +00:00
Peter von der Ahé
a8a9171dd8
Avoid crashing on this property access
...
Fixes https://github.com/dart-lang/sdk/issues/35875
Change-Id: I5ae2f73cd792aae165e787d7856b0af9a7c2e19e
Reviewed-on: https://dart-review.googlesource.com/c/92282
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-02-07 12:12:19 +00:00
Peter von der Ahé
b040d3c853
Improve error message on ambiguous constructors
...
Fixes https://github.com/dart-lang/sdk/issues/34515
Change-Id: Ibbecab411515309db9f45f7b59283f54d878223a
Reviewed-on: https://dart-review.googlesource.com/c/92261
Auto-Submit: Peter von der Ahé <ahe@google.com >
Commit-Queue: Kevin Millikin <kmillikin@google.com >
Reviewed-by: Kevin Millikin <kmillikin@google.com >
2019-02-07 09:51:49 +00:00
Peter von der Ahé
7fa0376af7
Implement subtype rules for Null in Fasta types
...
Change-Id: I5ca9e1b16a463ad8101139769b189f3e9d00c52c
Reviewed-on: https://dart-review.googlesource.com/c/91720
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-02-01 13:07:57 +00:00
Peter von der Ahé
f5fd281150
Prevent unsound promoted bounds from being used as arguments
...
Fixes https://github.com/dart-lang/sdk/issues/35100
Change-Id: I65f73f40d0ea970f0631599e01b177412fc32a40
Reviewed-on: https://dart-review.googlesource.com/c/90390
Commit-Queue: Peter von der Ahé <ahe@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-01-29 14:46:04 +00:00
Peter von der Ahé
5fbf15d9c4
Mixins have no static members
...
Change-Id: I93b43ad2d58ab2804ed7deafeadb6346eade9eab
Reviewed-on: https://dart-review.googlesource.com/c/91481
Reviewed-by: Jens Johansen <jensj@google.com >
Commit-Queue: Peter von der Ahé <ahe@google.com >
2019-01-29 09:54:52 +00:00
Jens Johansen
5cf4e543b8
Handle mis-included parts differently
...
If, for instance, including something that is not a part of the file
you include it from, previously we would copy things over anyway, and
other libraries wouldn't be able to use it
(for instance including it would fail).
Now, instead, we don't include it, structurally pretending the "part of"
line wasn't there (that is, we don't copy things over and other libraries
are free to include it).
As before, an error is given, but errors doesn't 'cascade' into other
libraries that (before this change) couldn't use the included file.
Change-Id: Ica6225c437ea7dd66f9e8955e638f442b2df8f97
Reviewed-on: https://dart-review.googlesource.com/c/90380
Reviewed-by: Peter von der Ahé <ahe@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
2019-01-28 14:20:45 +00:00
Peter von der Ahé
15dc147226
Prevent serialization of synthetic kernel nodes
...
Change-Id: Iad2300d8fa5384b5d692c5598c9311e600427dd2
Reviewed-on: https://dart-review.googlesource.com/c/90003
Commit-Queue: Peter von der Ahé <ahe@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-01-24 18:55:44 +00:00
Peter von der Ahé
53b372f575
Test that shows leaking synthetic nodes
...
Change-Id: I8f68795380c1d6963203f9356244d2599be6c9cb
Reviewed-on: https://dart-review.googlesource.com/c/90002
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-01-24 18:55:44 +00:00
Dmitry Stefantsov
027d3d3c66
[kernel] Create empty (De)SerializationState in the verifier
...
Change-Id: Ie0af87d783a21b36949a288939b99ab45398543f
Reviewed-on: https://dart-review.googlesource.com/c/90383
Reviewed-by: Daniel Hillerström <hillerstrom@google.com >
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
2019-01-22 12:10:06 +00:00
Peter von der Ahé
1a0367a373
Create test which demonstrates issues 35558 and 35559
...
Change-Id: I521ea3f7cf8d02f9e23edc1a9775fbd65bf64e4a
Reviewed-on: https://dart-review.googlesource.com/c/90180
Reviewed-by: Jens Johansen <jensj@google.com >
Commit-Queue: Peter von der Ahé <ahe@google.com >
2019-01-18 09:44:18 +00:00
Peter von der Ahé
21c42e914e
Compute supertypes
...
Change-Id: I85fd7894b026180b1bc418602c0f09fcfea0a543
Reviewed-on: https://dart-review.googlesource.com/c/89543
Commit-Queue: Peter von der Ahé <ahe@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-01-17 14:23:07 +00:00
Dan Rubel
1b0d93366d
Add list literal spread collection fasta test cases
...
Change-Id: Ia17b7e1d4f97565a8ca7a93b1db35896d0f2f647
Reviewed-on: https://dart-review.googlesource.com/c/89700
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2019-01-17 01:32:15 +00:00
Peter von der Ahé
3f44bd1bf9
Check for conflicts in mixins
...
Change-Id: I5443508d8454b2c903b65e253ecda223485787ad
Reviewed-on: https://dart-review.googlesource.com/c/88945
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-01-15 14:41:04 +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
6a756ac040
Add front-end test for set/map literal disambiguation.
...
The test exposes three problems:
- The disambiguation criterion in the type inference is incorrect, as
it infers a map when the context is a LinkedHashSet. This will be
fixed in an upcoming CL.
- Assigning a map literal to a LinkedHashMap produces a static error
("isn't of expected type") due to exact types. Rules for exact types
are currently unspecified, and the language team has expressed some
interest in allowing this case. See also
https://github.com/dart-lang/sdk/issues/33307
- Type arguments for the map literal are not inferred from the context
when the outer context type is a LinkedHashMap. This is consistent
between the CFE and analyzer. If the LinkedHashMap case is to be
supported, this must be fixed as well.
Change-Id: I1519c844dae1f599306446c992cfe4825e4f20d4
Reviewed-on: https://dart-review.googlesource.com/c/88726
Reviewed-by: Peter von der Ahé <ahe@google.com >
2019-01-11 15:14:05 +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
Kevin Millikin
a7b23e1cb5
[Kernel] Add text serializers for some invocations
...
Add serializers for instance getters, setters, and methods and for
super getters, setters, and methods. This requires also serializing
Arguments.
Change-Id: I36d36892bf896cd12b48f9e77395c0584daf47f1
Reviewed-on: https://dart-review.googlesource.com/c/88710
Commit-Queue: Kevin Millikin <kmillikin@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Daniel Hillerström <hillerstrom@google.com >
2019-01-09 09:43:31 +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é
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
Dmitry Stefantsov
7778a8b6ca
[kernel] Start setting up test suite for round-trip serialization
...
Change-Id: I00920c41a5eaa99a7cc3eececff1caac94b1c1c9
Reviewed-on: https://dart-review.googlesource.com/c/88184
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2019-01-04 16:05:26 +00:00