Commit Graph

3585 Commits

Author SHA1 Message Date
Dan Rubel 874f9d0bdf Refactor for statement parsing
This CL introduces 2 new parser listener events
in preparation for parsing for control flow structures
in literal lists, sets, and maps.

Change-Id: I230f36cded714a13e4badb401fe5b5906c93a2da
Reviewed-on: https://dart-review.googlesource.com/c/91144
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-01-25 18:15:00 +00:00
danrubel 56123f08b0 Update parser to support simple if/else control flow in literal lists, sets, and maps
Change-Id: I740beea833ed1ad76582ad5232549bd204981808
Reviewed-on: https://dart-review.googlesource.com/c/90901
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-01-24 22:22:50 +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
Peter von der Ahé 07ec31dcf1 Create kernel nodes from parsed types
Change-Id: I2f56d05c7d6639ec3e3d7848cddcc665d13086a1
Reviewed-on: https://dart-review.googlesource.com/c/90004
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2019-01-24 18:53:04 +00:00
Liam Appelbe c6e0d56a41 [VM] Add experimental flags to gen_kernel.
Bug: https://github.com/dart-lang/sdk/issues/35602
Change-Id: I41cc7fcfe2ec520d4b6cf1d8e9535c618b09637d
Reviewed-on: https://dart-review.googlesource.com/c/90540
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Liam Appelbe <liama@google.com>
2019-01-23 19:43:09 +00:00
danrubel 5543fce9a3 add limited support for parsing if control flow entries in lists, sets, and maps
This updates the parser to handle two if control flow entries
* `if` condition entry
* `if` condition spread-collection

... and also addresses comments in
https://dart-review.googlesource.com/c/sdk/+/90500

Change-Id: Ibabec8f0f4da918ef4cfe429405dae82ba74c129
Reviewed-on: https://dart-review.googlesource.com/c/90620
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-01-23 17:57:05 +00:00
danrubel 55197eafd7 Refactor literal list, set, and map parsing for control flow collections
This refactors the existing spread collection parsing in preparation
for control flow collection parsing.

Change-Id: I1fc5aa31449999145f7a63da1d34c7b8858cf5d4
Reviewed-on: https://dart-review.googlesource.com/c/90500
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-01-23 17:57:05 +00:00
Daco Harkes 591b52f1c5 [frontend] report transformation error messages through library loader
Change-Id: I7280d02e42785742fc800f7e44b1913408dcada5
Reviewed-on: https://dart-review.googlesource.com/c/90460
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-01-23 10:39:07 +00:00
Peter von der Ahé 9d02ca176a Follow up to CL 88941
Change-Id: I17a9e62da9b23e84447d5d121477ccda2cfc2339
Reviewed-on: https://dart-review.googlesource.com/c/89581
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-01-23 08:41:50 +00:00
Peter von der Ahé c0d46344ef Implement double dispatch for types
Change-Id: Id4eb18cff0fc18d47055b63351be6adc5ce7aec5
Reviewed-on: https://dart-review.googlesource.com/c/89583
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-01-23 08:03:34 +00:00
Peter von der Ahé 31ef7add9b Simplify ClassHierarchyBuilder API
Change-Id: Id5b6951713c22fa7f414de2ca9d34673107ebe80
Reviewed-on: https://dart-review.googlesource.com/c/89547
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2019-01-22 17:24:52 +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é 70b02ea06d Remove double synthetic wrap to fix crash in for-in
Fixes https://github.com/dart-lang/sdk/issues/35651

Change-Id: I80c07453cae3e4901785db65546a396bc99c3183
Reviewed-on: https://dart-review.googlesource.com/c/89515
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Auto-Submit: Peter von der Ahé <ahe@google.com>
2019-01-21 14:39:02 +00:00
Jens Johansen d2270fcda7 Avoid ConcurrentModificationException with problemsAsJson and patch files
Change-Id: I8663b99376b90c42bfdcad7eff7da47002b98eb0
Reviewed-on: https://dart-review.googlesource.com/c/90386
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2019-01-21 12:18:24 +00:00
Jens Johansen 865743a273 Include all non-dart and non-package libaries in fasta testing
Change-Id: Ied4ded0f601a5a2bf683cbc63cec724623b12796
Reviewed-on: https://dart-review.googlesource.com/c/90227
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-01-21 12:10:56 +00:00
Jens Johansen 1bad9304a0 Print user-imports and parts when printing ast to text
Also remove some duplicated code so libraries are mostly only printed
in one place.

Change-Id: I7cb86bff1938f05631d7eb3432deda2c9939f402
Reviewed-on: https://dart-review.googlesource.com/c/90226
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2019-01-21 12:10:16 +00:00
Peter von der Ahé 8b214f4d72 Restore type parser from reify project
Change-Id: Ic347890a4146cadb3ad1b6049b562350903505e7
Reviewed-on: https://dart-review.googlesource.com/c/89660
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2019-01-18 14:09:08 +00:00
Peter von der Ahé b0017d758c Refer to correct locations in SDK (and other dill files)
Fixes https://github.com/dart-lang/sdk/issues/35559
Fixes https://github.com/dart-lang/sdk/issues/35558

Change-Id: I902273759c6d3076779ccf120a79fd972d939827
Reviewed-on: https://dart-review.googlesource.com/c/90181
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2019-01-18 12:37:24 +00:00
Kevin Millikin c9a55b437a [Kernel] Remove the dedicated fromEnvironment constants
These can be represented as an unevaluated static invocation.

Change-Id: Ib827345f1f65a09f1a856eae33366722a2e613d2
Reviewed-on: https://dart-review.googlesource.com/c/90008
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2019-01-18 10:10:42 +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
Jens Johansen e3302cdb8f Follow-up to storing problems in the ast
Change-Id: I2bfe8ad8d86806e0f5ffa026566cfa234b82154b
Reviewed-on: https://dart-review.googlesource.com/c/90005
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2019-01-18 07:15:36 +00:00
Dan Rubel ddce2824fa Add more spread collection fasta test cases
Change-Id: I998234da8f9e3f1e5902f8cd3fcad884c012f128
Reviewed-on: https://dart-review.googlesource.com/c/90080
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-01-17 20:29:47 +00:00
Kevin Millikin b00193fa5f [Kernel] Signal an error for invalid native invocations
Calls to the factory constructor 'new List' can turn into static
invocations of a backend-specific factory function.  Signal an error
instead of crashing.

Change-Id: Id0a8a7f0f847c03225b7fa9da2351032d15522e0
Reviewed-on: https://dart-review.googlesource.com/c/90006
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Kevin Millikin <kmillikin@google.com>
2019-01-17 15:12:04 +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
Peter von der Ahé 181b3898eb Follow up on review comments
Change-Id: Ie5c3d31630b638653e5e27002b029915b8f940cf
Reviewed-on: https://dart-review.googlesource.com/c/89542
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-01-17 14:23:07 +00:00
Peter von der Ahé 660c33fde6 Add TypeBuilder.declaration
Change-Id: Iede4bde8e30bb4ac034c0cb0db49a843ff84d48b
Reviewed-on: https://dart-review.googlesource.com/c/89541
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-01-17 14:23:07 +00:00
Peter von der Ahé 3e24b60516 Hierarchy expectation files
These expectations will be used in a future CL.

Change-Id: I0e0659054732251452b32fedfd0ee52fac068f44
Reviewed-on: https://dart-review.googlesource.com/c/89524
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-01-17 14:23:07 +00:00
Peter von der Ahé ef2e000a52 Share expectation matching
Change-Id: I15e8d4c622a7980e170cf38e2ff57738ea57f01c
Reviewed-on: https://dart-review.googlesource.com/c/89521
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-01-17 14:23:07 +00:00
Peter von der Ahé f3cee0147c Fast versions of legacy and strong tests.
These versions don't run the VM on the generated .dill files.

These tests are still "Slow" in status-file lingo, as they run for
about 30 seconds on a fast machine.

Change-Id: I7bd326a14c8f1f1905d4c6b4d5f850a95b135325
Reviewed-on: https://dart-review.googlesource.com/c/88967
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2019-01-17 14:23:07 +00:00
Aske Simon Christensen e3d6709289 Error message for circular constant expressions
Handles the situations described in #34204 and #34189 when front-end
constant folding is enabled.

Change-Id: I64fd8449ac1661f6fe67411113c6f99d8009547c
Reviewed-on: https://dart-review.googlesource.com/c/90007
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2019-01-17 14:21:47 +00:00
Jens Johansen dab228e55f Save problems in ast - fasta changes
Change-Id: Id38f5e7495c245e5a7b161b55c58b8826c146a80
Reviewed-on: https://dart-review.googlesource.com/c/90000
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-01-17 10:46:13 +00:00
Peter von der Ahé ddc1de50d6 Use ClassHierarchyBuilder in all modes.
Change-Id: Ia4df46c2e9f6edc25274492c4a7ea85a4f4b95e1
Reviewed-on: https://dart-review.googlesource.com/c/88959
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-01-17 09:39:44 +00:00
Kevin Millikin e36ad1dad0 [Kernel] Build an invalid constant for evaluation errors
An invalid constant is (currently) represented by an unevaluated
invalid expression.  Using this instead of null fixes 63 out of 125
CFE constant-evaluation crashes with constant-update-2018 and
correctly signals 26 more previously-missed compile-time errors.

Change-Id: I5b4de3995b3a59978dfa08fc542ef0f027572eb6
Reviewed-on: https://dart-review.googlesource.com/c/89506
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-17 07:26:04 +00:00
danrubel b81c1b2095 Parse spread collections in map literals
This CL adds support for parsing spread collection entries in map literals.
For now, all listeners report an error on the spread collection tokens
'...' and '...?' until support has been added for those listeners.

Change-Id: I299bb1524fda39746471c07e618df6a2305b1a2e
Reviewed-on: https://dart-review.googlesource.com/c/89860
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-01-17 01:32:35 +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
Paul Berry 7984dc4fcc Prepare to publish analyzer version 0.34.2.
Change-Id: I70f9036cd18fc5aa4d30b0005dfe577d0bb11fb7
Reviewed-on: https://dart-review.googlesource.com/c/89821
Commit-Queue: Paul Berry <paulberry@google.com>
Auto-Submit: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-01-16 16:44:43 +00:00
Peter von der Ahé 8ba2de2344 Sort context for conflicting inherited members
Change-Id: I3a1893c6ea268b4bb1518aa8f098b3524aa4f1ba
Reviewed-on: https://dart-review.googlesource.com/c/88957
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2019-01-16 15:46:22 +00:00
Kevin Millikin 215f6620e7 [Kernel] Signal errors on static fields in constant contexts
Fasta allows some non-const static field access in constant contexts
which leads to the constant evaluator trying to evaluate them.  Signal
an error instead of crashing.  This will double-report errors for the
cases that Fasta already catches, and we should fix that
double-reporting.

Fix unbounded recursion in printing unevaluated constants (writeNode
called visitUnevaluatedConstant which called defaultConstant which
called writeNode...).

Fix a spurious trailing comma in printing of instance constants.

Change-Id: Idff3169a3a56432ad67c27ff9c267ef355c4c1dc
Reviewed-on: https://dart-review.googlesource.com/c/89514
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2019-01-16 15:07:58 +00:00
Peter von der Ahé 9b5eabdaca Fix crash in color support
Change-Id: Ibf1ad2a77ba5d1de3ae66ca64c43fe1b22a5da0a
Reviewed-on: https://dart-review.googlesource.com/c/89513
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-16 11:43:24 +00:00
Kevin Millikin 5f10aed19c [Kernel] Don't print static fields in instance constants
Instance constants don't have any of the class's static fields, so we
should not try to print them.

Change-Id: Id52bf7c25c805a21cf3a48c58efe84a720d0d2dd
Reviewed-on: https://dart-review.googlesource.com/c/89508
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Kevin Millikin <kmillikin@google.com>
2019-01-16 10:34:33 +00:00
Peter von der Ahé bdb51e2837 Improve input path handling and remove extra schemas.
Change-Id: I02a403284a2cc71cac908be4a7ec9f858cb5db47
Reviewed-on: https://dart-review.googlesource.com/c/89509
Auto-Submit: Peter von der Ahé <ahe@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2019-01-16 10:17:03 +00:00
Peter von der Ahé 0604110806 Reduce expectations on thrown exception
Change-Id: Ic1421c7d3164c581d1f69f6c032edd6ca0b9f519
Reviewed-on: https://dart-review.googlesource.com/c/89504
Reviewed-by: Jens Johansen <jensj@google.com>
2019-01-16 10:17:03 +00:00
Kevin Millikin 8a91948c03 [Kernel] Properly signal compilation errors for constants
Instead of simply printing a message, properly signal a Fasta problem for
constant errors.  This causes 68 tests (presumably missing compile-time
errors) to start passing with --enable-experiment=constant-update-2018.

Change-Id: Ia9f1809305bbef7b4652ce49acf6fb9c18408207
Reviewed-on: https://dart-review.googlesource.com/c/89580
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-16 08:15:34 +00:00
Sam Rawlins 492df72739 Fix fasta test under windows
Change-Id: If9db5a0a9d67aa2ae369aabef44a70da06d41ac2
Reviewed-on: https://dart-review.googlesource.com/c/89764
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2019-01-16 04:23:33 +00:00
Dan Rubel 4ec9dbf1d0 Add set literal spread collection parsing support
Change-Id: I12f4675a3a034a82acc16c4d189b001d52c23039
Reviewed-on: https://dart-review.googlesource.com/c/89681
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-01-16 01:48:36 +00:00
Dan Rubel b55bc09f1f Add list literal spread collection parsing support
Change-Id: I96098e35baf44660b3f7a49952fde64def9998c7
Reviewed-on: https://dart-review.googlesource.com/c/89680
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-01-15 21:16:05 +00:00
Sam Rawlins 3154bb0d37 Stop using external deprecated members in front_end
Change-Id: I3fa03de568f72bfc3adb46efcfa2b61b781c706b
Reviewed-on: https://dart-review.googlesource.com/c/89020
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-01-15 18:55:10 +00:00
Dan Rubel 21edbbbac6 Add spread collection token to scanner
Change-Id: I1932d7c7fa6daba244ad2d93ddc7e2de18100fee
Reviewed-on: https://dart-review.googlesource.com/c/89600
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-01-15 16:42:39 +00:00
Aske Simon Christensen ecc1411685 Print constant table when printing libraries.
Change-Id: Ia474f3ddbe23be14d40789b0587ceeee92813106
Reviewed-on: https://dart-review.googlesource.com/c/89548
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2019-01-15 15:10:33 +00:00