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
Peter von der Ahé
17e284fbc2
Convert DeferredAccessor to DeferredAccessGenerator
...
Change-Id: I591895d94b051534c0151e30689d1798d803796d
Reviewed-on: https://dart-review.googlesource.com/55466
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2018-05-17 08:45:05 +00:00
Dan Rubel
137942aca5
Implement TypeParamOrArgInfo.parseVariables
...
This CL is the next step in replacing parseType and improving recovery.
It introduces a new parseVariables method for parsing type parameters
(aka type variables) method in addition to improving recovery in the
parseArguments method.
Change-Id: I4049528152a7c731771d7a8145e5f79729165d79
Reviewed-on: https://dart-review.googlesource.com/55301
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2018-05-16 11:44:08 +00:00
Peter von der Ahé
4e9f455220
Ensure toString is always implemented on generators
...
Change-Id: Iedff0cd12652ec57400718cb3ad9e865623d9165
Reviewed-on: https://dart-review.googlesource.com/55280
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2018-05-16 10:45:08 +00:00
Samir Jindel
39c93a2b19
Revert "Revert "[vm/kernel] Expression execution through Kernel."
...
This reverts commit b5154dd01e .
Original revision is in patchset 1.
Change-Id: Ic0776011c6fdbd64c025086535351474a9a88b6e
Reviewed-on: https://dart-review.googlesource.com/54407
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Alexander Aprelev <aam@google.com >
2018-05-15 12:03:22 +00:00
Jens Johansen
f08f61e84d
Incremental ClassHierarchy
...
This CL turns the ClassHierarchy incremental and use that in two places:
* When compiling incrementally
* When performing the second ClassHierarchy computation after adding
forwarding stubs.
Change-Id: I7046d6be9d7673dc0783a98789b5a25183b44799
Reviewed-on: https://dart-review.googlesource.com/53804
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2018-05-15 07:37:09 +00:00
Jens Johansen
94a6a48edd
Don't encode strings up front; don't toString uris
...
Second try. First try was reverted because a previously empty URL (the
default 'always there' one) is now a null url instead, which wasn't
handled properly in the frontend_server.
See 47e9039512 for original details.
This reverts commit 4c9b712052 .
Change-Id: I717eb927cbe29b6388e72f7e270428d234d44e4d
Reviewed-on: https://dart-review.googlesource.com/53580
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2018-05-14 11:31:58 +00:00
Kevin Millikin
8dbe716085
Remove the unused GenericCovariantInterface bit
...
None of the back ends are using it and it imposes a cost to have to
compute it and try to preserve it.
Change-Id: I217e1191b535829021fa11f2698cadd8d4baf1c8
Reviewed-on: https://dart-review.googlesource.com/54383
Commit-Queue: Kevin Millikin <kmillikin@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2018-05-09 15:04:43 +00:00
Samir Jindel
b5154dd01e
Revert "[vm/kernel] Expression execution through Kernel.
...
This reverts commit afd0a52a5a .
Reason for revert: Breaks kernel-a32 and kernel-rbc bots
Original change's description:
> [vm/kernel] Expression execution through Kernel.
>
> Change-Id: Id90c91cb3b71f9ce703e21fe48147b86a7764d34
> Reviewed-on: https://dart-review.googlesource.com/42562
> Reviewed-by: Ryan Macnak <rmacnak@google.com >
> Reviewed-by: Alexander Aprelev <aam@google.com >
> Commit-Queue: Samir Jindel <sjindel@google.com >
TBR=aam@google.com ,rmacnak@google.com ,sjindel@google.com
Change-Id: If1ecad6145aeab81d5d3581798a628ead0265c38
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/54420
Reviewed-by: Samir Jindel <sjindel@google.com >
Commit-Queue: Samir Jindel <sjindel@google.com >
2018-05-09 12:41:00 +00:00
Samir Jindel
afd0a52a5a
[vm/kernel] Expression execution through Kernel.
...
Change-Id: Id90c91cb3b71f9ce703e21fe48147b86a7764d34
Reviewed-on: https://dart-review.googlesource.com/42562
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Alexander Aprelev <aam@google.com >
Commit-Queue: Samir Jindel <sjindel@google.com >
2018-05-09 10:27:52 +00:00
Jens Johansen
972d4b0b1d
Add frontendInternal key and external example to messages tests
...
This CL adds two keys to the messages.yaml file:
* `frontendInternal` which indicates that we do not require a
dart2jsCode nor a analyzerCode: there is no corresponding
error in other tools
* `external` which can be used instead of an example. The external
file is not actually run to verify the example, but the file is
checked for existance. This can for instance be used to test an
internal frontend error code.
Change-Id: I2426c6ba2a2abe5baaab09c8e0947b4b876df083
Reviewed-on: https://dart-review.googlesource.com/54387
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2018-05-09 10:07:42 +00:00
Samir Jindel
03abbc73d2
CFE support for expression evaluation, refactored.
...
Change-Id: I7eac1020b7aa11ea0276f909d7b11ee6388b1aa7
Reviewed-on: https://dart-review.googlesource.com/53209
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Peter von der Ahé <ahe@google.com >
2018-05-08 11:20:35 +00:00