Commit Graph

789 Commits

Author SHA1 Message Date
asiva bc7220a4fd [VM] Turn dart2 on by default on the command line VM
- make Dart2 the default option for the command line VM
- add option --no-preview-dart-2 as a fallback option to run dart1
- change test scripts to use the executable dart for testing dart2 mode instead of
pkg/vm/tool/dart2
- adjust numerous build and test configurations

Change-Id: Id813fa5b71a89c7ec9335d3f6e83cfc9f35f86e7
Reviewed-on: https://dart-review.googlesource.com/58240
Commit-Queue: Siva Annamalai <asiva@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-06-18 22:31:32 +00:00
Mike Fairhurst e2d903c4dc Remove packages/ directory resolution from CFE
Change-Id: I560941d08965a58b8a88e1b49c4d7d216389609e
Reviewed-on: https://dart-review.googlesource.com/60062
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
2018-06-15 22:47:20 +00:00
Sigmund Cherem 44650cc9eb Pass the location of vm_platform to compile_platform from the commandline.
This is to make it more transparent to use the same compile_platform template in
flutter/fushia builds.

Change-Id: I2a94c77bd2887cbc86f4547f7c8a0d54520a259b
Reviewed-on: https://dart-review.googlesource.com/60326
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-06-15 20:19:21 +00:00
Jens Johansen ac039abc83 Add option to check if a dill is self-contained
This CL adds an option to the dill loader (i.e. BinaryBuilder) to
enable performing a check of all canonical names. The theory is,
that if a dill is self-contained "every" (1) canonical name should
contain a reference to a node.

This check is (currently) disabled by default, but enabled
excplicitly in the incremental compiler when initializing from dill.
If the check fails a warning will be issued (and the dill wont be
used).

On my machine the check seems to take ~15 ms in all tested cases
(sdk, flutter test).

(1): Except for extra layer of URI of a library if the qualified
name is private.

Closes #32449.

Change-Id: I65c8fba647be3d5ba47f7ee16caef78cb2cfae07
Reviewed-on: https://dart-review.googlesource.com/51462
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2018-06-15 06:46:23 +00:00
Aske Simon Christensen 729e9942bd Support multiple files in messages test.
Change-Id: Ia39deb29c5255dbcfe973fbdbad35d08ed181bd1
Reviewed-on: https://dart-review.googlesource.com/60242
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-06-14 14:47:19 +00:00
Peter von der Ahé 99575f79ca Split ContextAwareGenerator and its subclasses
This prepares the generators to be implemented by the analyzer.

Change-Id: I8b5a5b6e00d5ec7003f75b899be74c6c33a4585d
Reviewed-on: https://dart-review.googlesource.com/60244
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-06-14 14:14:14 +00:00
Sigmund Cherem c30ce41ae6 Add hook to use single-root in fasta scripts and make use of it when creating
the dart2js platform files.

The main use-case right now is in compile-platform, but the way it is implemented
makes this available to any fasta tool.

This also adds resolveInputUri so we don't incorrectly treat supported URIs as file:* Uris.

Fixes https://github.com/dart-lang/sdk/issues/32633

Change-Id: I0ea3b1128352e72957b35823c6a1749ee418768b
Reviewed-on: https://dart-review.googlesource.com/56282
Reviewed-by: Zach Anderson <zra@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-06-13 22:14:14 +00:00
Peter von der Ahé 7d920950b7 Implement simple deprecation message
Change-Id: I998830857241abb222c7b3cdb7ebda34db328aab
Reviewed-on: https://dart-review.googlesource.com/59087
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2018-06-13 13:03:26 +00:00
Peter von der Ahé 3d98cce456 Replace Severity.nit by Severity.ignored
Change-Id: Ib249c2e383c25173bd25b965bdb0d67c9a487cb4
Reviewed-on: https://dart-review.googlesource.com/59085
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2018-06-13 08:12:34 +00:00
Peter von der Ahé 6054cb3e1f CompilerContext always expects a Future now
This change is made because we were incorrectly calling
CompilerContext.clear *before* running the main compilation
task which is async.

Change-Id: I7181af33fe733e5bc653fa742b9e06782f4278d0
Reviewed-on: https://dart-review.googlesource.com/58201
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-06-06 09:35:31 +00:00
Kevin Millikin 6213303e65 Fix some runtime check failures in tests
Fix some Dart 2 runtime check failures due to inferred List<dynamic>.

Change-Id: I09215629d4d6c70cd56930b0d19de2a092a7facd
Reviewed-on: https://dart-review.googlesource.com/58208
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Kevin Millikin <kmillikin@google.com>
2018-06-06 08:09:58 +00:00
Dan Rubel daee781179 Revise beginTypeVariable event in event sequence
This is the first CL in a series aimed at removing the need to reparse type variables in
https://github.com/dart-lang/sdk/blob/master/pkg/front_end/lib/src/fasta/kernel/body_builder.dart#L3669
and ultimately improving recovery by removing parseType.

* Move calls to listener.beginTypeVariable after parsing metadata and identifier
* Pass variable name via beginTypeVariable rather than via handleIdentifier
* Add additional check in test for issue 31846

Change-Id: I983b9d17675fc899c83df69fa1777059903e3f52
Reviewed-on: https://dart-review.googlesource.com/58300
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-06-05 15:11:00 +00:00
Peter von der Ahé 7ce24328c3 Add UnlinkedScope
This scope is for use when building an AST before building the outline.

Change-Id: I90786449fb4e7d755e64d40f91c4cb67a02a6082
Reviewed-on: https://dart-review.googlesource.com/57581
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-05-31 14:11:24 +00:00
Peter von der Ahé b3bae4262d Fix a batch of long lines
Change-Id: I9ae610f7e6e588ecec961af9ea72dcf6ee1751b7
Reviewed-on: https://dart-review.googlesource.com/57506
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-05-31 12:25:22 +00:00
Peter von der Ahé 032925c4ff Remove obsolete features
Remove tree-shaker as we're not using it, and it creates problems
when the SDK changes.

Remove scopes from AstBuilder as we will be phasing out AstBuilder
in favor of using BodyBuilder and the Forest API.

Change-Id: I51950c5d8bfb0493587336325f9da8f5bf8ecea6
Reviewed-on: https://dart-review.googlesource.com/57261
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2018-05-31 07:24:54 +00:00
Peter von der Ahé 3b6caa3517 Split UnresolvedNameGenerator
This prepares the generator to be implemented by the analyzer.

Change-Id: I487a1704943fbe40ca20031372a436f74ef32752
Reviewed-on: https://dart-review.googlesource.com/57320
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-05-30 15:17:40 +00:00
Alexander Markov 1ca17b6d03 [vm/kernel] Recognize desugared mixin applications in dart:mirrors
Kernel mixin transformation desugars mixin applications into normal
classes. Mixed-in type is pulled into interfaces list.
However, dart:mirrors needs to know the original mixed-in type of
a mixin application.

This change solves this problem by propagating a 'isTransformedMixinApplication'
attribute of a class through kernel AST, kernel binary and VM objects
into dart:mirrors implementation.

Fixes: https://github.com/dart-lang/sdk/issues/33240
Change-Id: I98ca69294e1ad445402a5ca91d90c30447aabcb2
Reviewed-on: https://dart-review.googlesource.com/56721
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-05-29 18:12:26 +00:00
Dan Rubel b7336ab443 Improve field type argument recovery
This CL improves recovery when parsing field type arguments
and adds more tests for parsing type parameters and type arguments.

Change-Id: Ib6ee4081f898d0421d90a66de84d686206a06a8f
Reviewed-on: https://dart-review.googlesource.com/56682
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-05-29 16:30:46 +00:00
Peter von der Ahé 990c85276b Avoid allocation and bottom-type on Link
Change-Id: Ib23e596edf55285cc63e3a391da3712b2bcb1224
Reviewed-on: https://dart-review.googlesource.com/56761
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-05-29 07:40:27 +00:00
danrubel b4699ae795 Improve type parameter and type argument recovery
This improves recovery when parsing type arguments in
* top level fields and functions
* class members

and when parsing type parameters in
* top level functions
* class declaration
* class methods

Change-Id: I7dbb520d6bb39c0d13b27698658dafe580f2b16c
Reviewed-on: https://dart-review.googlesource.com/56681
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-05-26 02:25:53 +00:00
danrubel 544863fe68 Remove the no-op rewriter tests
Change-Id: I416ee350e1e7346493a3c4df3616f11d3b637d7c
Reviewed-on: https://dart-review.googlesource.com/56680
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-05-26 02:25:53 +00:00
Peter von der Ahé 6a34939ba7 Use bottom type for Link constants
This should make the Link implementation work in strong mode.

We may find situations where Link<Null> leaks out, but I believe those should
be fixed by passing explicitly typed tail arguments.

Change-Id: I4c48769569f22e987ace586f5ec9264d75b49982
Reviewed-on: https://dart-review.googlesource.com/56663
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2018-05-25 10:37:36 +00:00
Peter von der Ahé 8e25851870 Split LargeIntAccessGenerator
This prepares the generator to be implemented by the analyzer.

Change-Id: Ida249f93ad0b80bb52bb3278a1e2949c668b0e64
Reviewed-on: https://dart-review.googlesource.com/56493
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-05-25 07:45:46 +00:00
Peter von der Ahé 8d4a1ccaf6 Split ReadOnlyAccessGenerator
This prepares the generator to be implemented by the analyzer.

Change-Id: Idccd5af9aac79300186b3a07c636bb580bdd637c
Reviewed-on: https://dart-review.googlesource.com/56491
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-05-24 11:35:02 +00:00
Peter von der Ahé ee9e1c1571 Split TypeUseGenerator
This prepares the generator to be implemented by the analyzer.

Change-Id: I89bf0ca368308e98846c8ea8b7c765398c48ecf7
Reviewed-on: https://dart-review.googlesource.com/56490
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-05-24 11:35:02 +00:00
Peter von der Ahé 9ec756b31c Split DeferredAccessGenerator
This prepares the generator to be implemented by the analyzer.

Change-Id: I40a91e6455128fedac871eb2691197333e2cba15
Reviewed-on: https://dart-review.googlesource.com/56489
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-05-24 11:35:02 +00:00
Peter von der Ahé 163807ad40 Split LoadLibraryGenerator
This prepares the generator to be implemented by the analyzer.

Change-Id: Id6e3f3935ce4bd4989b544c251b0e859f256eb19
Reviewed-on: https://dart-review.googlesource.com/56486
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-05-24 11:35:02 +00:00
Peter von der Ahé 1d8a72cacd Split StaticAccessGenerator
This prepares the generator to be implemented by the analyzer.

Change-Id: I99a1e1365da67a867f6c4ed5883649f157306d92
Reviewed-on: https://dart-review.googlesource.com/56502
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-05-24 10:16:11 +00:00
Kevin Millikin 2d46ebd6a5 Fix Dart 2 runtime errors in the front end
Fix all the Dart 2 runtime errors revealed by compiling dart2js, the
front end itself, the front end tests.

Change-Id: Ic6e6dd9f85db845b6a351ebbcfea9a6045843fc2
Reviewed-on: https://dart-review.googlesource.com/56322
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-05-24 10:14:20 +00:00
Peter von der Ahé d07b9aa0e0 Add explicit type args on generators
Change-Id: Ia1e4c42b888d9302e23a7e832044b2f59f8c0a8f
Reviewed-on: https://dart-review.googlesource.com/56483
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-05-24 08:55:52 +00:00
Peter von der Ahé b3862d5a92 Split SuperIndexedAccessGenerator
This prepares the generator to be implemented by the analyzer.

Change-Id: Ia962668e1327b53af968be9efdc41ea6b124b4d0
Reviewed-on: https://dart-review.googlesource.com/56482
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-05-24 08:27:59 +00:00
Sigmund Cherem 9b44fc39c8 Deprecate chaseDependencies option.
The option is not used by any client at this time and removing it simplifies the
next stack of changes I'll be making on how we compose file systems.

I also don't believe we will necessarily add this back as an option, but instead
it might be that clients requriing hermeticity will provide a custom file system
that helps with that.

Change-Id: I401efb042920d234382b6c041b13d40ffae5c908
Reviewed-on: https://dart-review.googlesource.com/56462
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-05-24 04:57:01 +00:00
Sigmund Cherem 83e29023f4 Add schema-based file system
This file-system will be used to compose multiple file-systems together.

Bug: https://github.com/dart-lang/sdk/issues/32633
Change-Id: Ia6c9626b98037c4aaee83be0e09615671f5d0fe7
Reviewed-on: https://dart-review.googlesource.com/56281
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-05-23 19:51:11 +00:00
Aske Simon Christensen 8427d53a4d Extra precedence level in parser to distinguish postfix operators and selectors
Fixes https://github.com/dart-lang/sdk/issues/31185

Change-Id: I77d617f6abd367d857741d04cf47571ea7492c6a
Reviewed-on: https://dart-review.googlesource.com/56111
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2018-05-23 16:13:55 +00:00
Peter von der Ahé f7e09684b6 Split IndexedAccessGenerator and ThisIndexedAccessGenerator
This prepares the generators to be implemented by the analyzer.

Change-Id: I28ada82b602893b427c8d34df68b2c9a7f8439cf
Reviewed-on: https://dart-review.googlesource.com/56341
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-05-23 16:02:55 +00:00
Peter von der Ahé 3a5454a691 Split SuperPropertyAccessGenerator
This prepares the generator to be implemented by the analyzer.

Change-Id: I7c6ebf43e8dee46ea734d7a245c20fc03fe74b65
Reviewed-on: https://dart-review.googlesource.com/56325
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-05-23 16:02:55 +00:00
Peter von der Ahé 443c23c091 Remove subpackage_relationships_test.dart
This also enables us to remove unsupported front-end API.

Change-Id: I1f655039e9fa4718ef5c941d1932c136eefab3c5
Reviewed-on: https://dart-review.googlesource.com/56342
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-05-23 14:12:36 +00:00
Peter von der Ahé 39bccc125d Split NullAwarePropertyAccessGenerator
This prepares the generator to be implemented by the analyzer.

Change-Id: I6468e0eb24a812e6de498b358d33d668683da3ed
Reviewed-on: https://dart-review.googlesource.com/56321
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-05-23 11:07:07 +00:00
Peter von der Ahé fc95fd920b Move generators out of body_builder
Change-Id: Ifc1edcc04659931fc8e1cfc76922921ad1665328
Reviewed-on: https://dart-review.googlesource.com/56119
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-05-23 11:07:07 +00:00
Peter von der Ahé 39516de753 Split ThisPropertyAccessGenerator
This prepares the generator to be implemented by the analyzer.

Change-Id: I429f41beec55057b427ef686d99c7ff26c1e6b25
Reviewed-on: https://dart-review.googlesource.com/56118
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-05-23 09:26:35 +00:00
Peter von der Ahé 2d79c356e0 Start creating common superclass for generators
Change-Id: I9d8c95665eed15be45c2a5b734e541af73a7db91
Reviewed-on: https://dart-review.googlesource.com/56117
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-05-23 09:24:46 +00:00
Sigmund Cherem 8c0f5747a0 Add build_integration package and move multi_root_file_system there.
This is following the design discussion we had a few months ago.

Change-Id: I48b2e82af33d10b9cd1e599e1b3a4e8e419417c8
Reviewed-on: https://dart-review.googlesource.com/56035
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-05-22 20:09:24 +00:00
Konstantin Shcheglov 371c8e4b87 Append version and CRC32 to data in FileByteStore.
We need this to prevent reading accidentally damaged data.

R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: I1c3b2c61f3cdb087c8f7effafba7fa13deef87ce
Reviewed-on: https://dart-review.googlesource.com/3700
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-05-22 17:06:32 +00:00
Peter von der Ahé 330dcb19da Rename remaining generators
Change-Id: I8baf2347aaab8a32eb41518ea8079dc491753af5
Reviewed-on: https://dart-review.googlesource.com/56106
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-05-22 13:10:42 +00:00
Peter von der Ahé 09582b46ea Remove FastaAccessor and Accessor
Change-Id: I439670b0fafa09536901647572615afa4e82977a
Reviewed-on: https://dart-review.googlesource.com/55965
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-05-22 09:32:41 +00:00
Peter von der Ahé bbdf560ee7 Convert UnresolvedAccessor to UnresolvedNameGenerator
Change-Id: Ie28b5d963ab575383b36551657c0f0109b5de53d
Reviewed-on: https://dart-review.googlesource.com/55963
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-05-22 09:23:21 +00:00
Peter von der Ahé 4610daa1c1 Convert ThisAccessor to ThisAccessGenerator
Change-Id: I097c330712c789a65a1ce9c6a57ef0c81a3a32ed
Reviewed-on: https://dart-review.googlesource.com/55893
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-05-19 06:29:19 +00:00
Lasse R.H. Nielsen a4494a7fb2 Make mixin and interface built-in identifiers.
Fixes #33113

Bug: http://dartbug.com/33113
Change-Id: I4b0b7c9d82ae9df6a7e9f71168ca981c62c7a2f1
Reviewed-on: https://dart-review.googlesource.com/55222
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-05-18 09:57:17 +00:00
Peter von der Ahé 812189d3e7 Convert LargeIntAccessor to LargeIntAccessGenerator
Change-Id: I904562f31a5f03fb7dfdd8dac3db55b5085ed68a
Reviewed-on: https://dart-review.googlesource.com/55469
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-05-17 08:45:05 +00:00
Peter von der Ahé 5e98c49606 Convert ReadOnlyAccessor to ReadOnlyAccessGenerator
Change-Id: If4ba17b46dbe366ff148f50f55df99d79f492fe0
Reviewed-on: https://dart-review.googlesource.com/55467
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-05-17 08:45:05 +00:00