Commit Graph

648 Commits

Author SHA1 Message Date
Kevin Millikin 5ade5079b1 [cfe] Remove the set-literals experimental flag
This flag has been enabled since Dart 2.2.0.

Change-Id: I18e77e1659d4be1aaf06e1c2a6262ae9e8c7f922
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104760
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2019-06-19 15:06:05 +00:00
Jens Johansen b9e005f4b9 [fasta] messages_test automatically wraps examples in part
Update the message_test to automatically create an example that wrappes
all already defined examples in a part.
For instance, if the example is

main.dart: main() { print("hello world"); }

create an additional example that is basically

main_wrapped.dart: part 'main.dart';
main.dart: part of 'main_wrapped.dart'; main() { print("hello world"); }
(as well as some additional comments to push any actual positions in the
main file ot of scope for valid positions in the wrapper file.

This doesn't work for everything, e.g. if the original main imports or
exports anything, the new test will fail. That's okay, the status file
has been updated accordingly.

The reason for adding it is that we currently have some bugs that causes
us to crash in situations like this, i.e. situations where a message is
coming from a position in a part where the same position doesn't exist
in the non-part file.
The status file has been updated for that too, although not in sorted order.

Change-Id: Ib67f85fca5e81e0b9e93cf2d79ab50c38cae4936
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106082
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2019-06-18 10:01:58 +00:00
Vijay Menon 3b5a187726 [dartdevc] move ddc internal libraries under sdk
Note, this has the effect of including all DDC Dart sources with the
shipped SDK: we ship everything under sdk/lib.

This should enable https://github.com/dart-lang/build/issues/2262

Change-Id: If66bc7c620034e7f2acf7d2c3e9524a408417681
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104383
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2019-06-04 13:47:29 +00:00
Sam Rawlins b22cd05c51 Reland fix for #28233: add hint for missing returns to function expressions
The bulk of this change is actually correcting missing returns in the Dart SDK.

Bug: https://github.com/dart-lang/sdk/issues/28233
Change-Id: I52bcbc6c6f4a129d3fc22003f4448a7c3d4487ad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100301
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2019-05-22 18:12:30 +00:00
danrubel c33f1a079e revise scanner api so that error tokens are always prepended
This CL revises the scanner API so that tokens are always prepended
to the beginning of the token stream. This allows the parser handling
of error tokens to be simplified. Any clients using the scanner directly
rather than through the scanner API should call scannerRecovery
if the scanner has detected errors in the content.

Change-Id: I32510da10205bd964f80898a238489d1508733e6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102680
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-05-17 20:59:51 +00:00
danrubel 7ec4621108 cleanup scanner configuration flags
* rename enableGtGtGt to enableTripleShift
* remove unused enableGtGtGtEq field

Change-Id: I0fa881c45619067ec3a292acbff984db555aa43e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101362
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-05-04 17:14:46 +00:00
Dan Rubel 4d7217016e encapsulate scanner configuration in ScannerConfiguration
... and update TypeInfoTest to use ScannerConfiguration

Change-Id: I637d6fbeecd0b6d16c37e57cfd8ba9fc1fba494a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100791
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-04-30 14:00:28 +00:00
Dan Rubel 08832508ec Forward "late" modifier to parser listeners
... and update parser tests to use preNonNullable feature set
to address comments in https://dart-review.googlesource.com/c/sdk/+/99963

Change-Id: I3a3293d65805807b7b95e887f829f3f0080ae3b2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99964
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-04-22 17:20:10 +00:00
Dan Rubel ca28e2c8ce forward "required" modifier to parser listeners
... and have each report an error by default

Change-Id: If818a7bb207becbed95a97890632a1803917d285
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99720
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-04-17 21:19:51 +00:00
Dmitry Stefantsov 4a1b153fe1 [cfe] Enable type promotion in if-elements of literal collections
Closes #36396.

Bug: http://dartbug.com/36396
Change-Id: I223267cdee1aca38d69354e4f97df7dcc76e9553
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98461
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-04-02 13:33:19 +00:00
Aske Simon Christensen 0b57b67ecb [CFE] Move const set desugaring to constant evaluator.
To properly recognize control-flow constructs in sets, the constant
evaluator needs to get un-desugared set literals. This commit skips the
desugaring of const set literals if the constant evaluator is enabled
and adds a similar desugaring in the constant evaluator.

Doing the desugaring in the constant evaluator (which can be called
independently of Fasta) necessitates that dart:collection is indexed
in CoreTypes. We can remove this indexing again when the VM gains
native support for set constants.

Change-Id: Ibddafdcb182e4471012801745b51b529805b7b9f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98008
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-03-28 15:00:58 +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
danrubel 466b6884dc add scanner/parser support for >>>=
Change-Id: I8bbf19e70f35aba600cb768fc3c7537f2aa604e9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97602
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-03-22 23:38:51 +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
danrubel 266d823f5c remove unused scanner error list
Change-Id: I3dd5d66dcf05ae2bf9f2087724801cae4f3b6036
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97542
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-03-21 22:33:02 +00:00
Jens Johansen e9e0daee5c Add importUri and fileUri to Source.
This will enable the VM to map URIs to package-URIs to solve problems
such as https://github.com/dart-lang/sdk/issues/35859

Change-Id: I15520325a5b81a99a7e3f56c2e35fd775d9da946
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96905
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-03-20 08:44:33 +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é 479483ed13 Compute isGenericCovariantImpl in outline phase
Change-Id: I7ef6a39f66383a53c090cf5c47861cba84903271
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97084
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2019-03-20 06:52:13 +00:00
danrubel b2cb604b9d improve literal list/map/set control flow recovery
* new ExpectedElseOrComma parser error code
* update recovery tests to enable control flow recovery
* rework test to call parser.parseLiteralListSuffix rather than parser.parseLiteralListSuffix

Fix https://github.com/dart-lang/sdk/issues/36141

Change-Id: I5bdee19eb3828de8fbdc514a3820afaa1309df99
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95980
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-03-08 17:31:33 +00:00
Aske Simon Christensen 822ebdd1e0 [fasta] Wrap non-const variable accesses inside const expressions.
Change-Id: I8761031da2419a47a947a02721d4ffd86ac7c531
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/93504
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-03-05 09:23:57 +00:00
Jens Johansen 2695cdfbb1 Change incremental compiler to take entry points (plural)
Change-Id: I03203cdeb11ab7bc6116779642909ebc7220c619
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95122
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-03-05 07:39:31 +00:00
Dmitry Stefantsov e4aa4325b7 [fasta] Enable spread collections in unit tests
Change-Id: Id417704bdd15f8244f16fd61715f43910f678f7f
Reviewed-on: https://dart-review.googlesource.com/c/94541
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-03-01 15:17:13 +00:00
Peter von der Ahé ba31e448ca Finish implementing IsIntersectionSubtypeOf
Change-Id: I1b2958269545a5e562b664d51d945d328f46d0d5
Reviewed-on: https://dart-review.googlesource.com/c/94299
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-02-28 09:08:56 +00:00
Peter von der Ahé 155ac6afbd Create subtype benchmarks based on dart2js and a large application
The large application is from an internal customer.

Change-Id: I670180a85ca402a34f99493d05de0124f8f89701
Reviewed-on: https://dart-review.googlesource.com/c/94296
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2019-02-26 14:07:42 +00:00
Peter von der Ahé b446d0a226 BenchMaker: a benchmark that reads the output from BenchMaker
Change-Id: I671d949d8a8c6f9c17ef022fd389dcde1769bf6f
Reviewed-on: https://dart-review.googlesource.com/c/94289
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2019-02-26 11:59:43 +00:00
Peter von der Ahé 561f7905d6 A type variable can be a subtype of another
Change-Id: I2f4df4126f5d788b2993689e623c9b69b4a0c251
Reviewed-on: https://dart-review.googlesource.com/c/94201
Reviewed-by: Jens Johansen <jensj@google.com>
2019-02-26 09:30:32 +00:00
Peter von der Ahé 0f9a5198bd Finish implementing IsFutureOrSubtypeOf
Change-Id: I0263be3d52cf3be1b3ba1f34bed9180fb0125863
Reviewed-on: https://dart-review.googlesource.com/c/93986
Reviewed-by: Jens Johansen <jensj@google.com>
2019-02-26 09:30:32 +00:00
Peter von der Ahé 65698e2c2f Support mixin applications in type parser
Change-Id: I558c7c6d69b0ac026abf32775bdf7c25aae401be
Reviewed-on: https://dart-review.googlesource.com/c/94205
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2019-02-25 10:26:54 +00:00
Peter von der Ahé e395cdb1ad Support mutually recursive types
Change-Id: Ib294756657325eab348f5dba451d369f21d5a516
Reviewed-on: https://dart-review.googlesource.com/c/94204
Reviewed-by: Jens Johansen <jensj@google.com>
2019-02-25 10:26:54 +00:00
Peter von der Ahé 393c1df600 Improve performance of scope creation in type parser
Change-Id: I4e432d3eacf2bceaf1cbf72c08a58516687128cf
Reviewed-on: https://dart-review.googlesource.com/c/94203
Reviewed-by: Jens Johansen <jensj@google.com>
2019-02-25 10:26:54 +00:00
Dan Rubel 272f58e543 Revise parser to generate handleLiteralSetOrMap
... and no longer generate handleLiteralSet or handleLiteralMap.
In addition, a new hasSetEntry parameter has been added to the
handleLiteralSetOrMap event generated by the parser to support
existing behavior. Once all listeners have implemented
unified collections and that feature is enabled by default,
the hasSetEntry parameter can be removed.

This is the third of several CLs updating the parser and its listeners
to conform to the unified collection spec:
https://github.com/dart-lang/language/pull/200

Change-Id: Ia305eab1f720658f357ac4102b0b0c8128d16997
Reviewed-on: https://dart-review.googlesource.com/c/93963
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-02-22 19:58:38 +00:00
Peter von der Ahé 7f2a83ee07 BenchMaker: collect used type parameters
Change-Id: If6c18e66eded0ebe73575cca28dd77e5ae374890
Reviewed-on: https://dart-review.googlesource.com/c/93950
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2019-02-22 13:01:09 +00:00
Jens Johansen e4d1b28698 Incremental compiler should respect omitPlatform setting
Change-Id: Id842db646ba95945c8fadce0626cb8cbee2812ad
Reviewed-on: https://dart-review.googlesource.com/c/93433
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2019-02-22 11:44:45 +00:00
Peter von der Ahé e2b7f48333 Implement ClassHierarchyBuilder.getLegacyLeastUpperBound
Change-Id: Id946a8e49ef414e5d2f6439d15e6cb134c9ccb83
Reviewed-on: https://dart-review.googlesource.com/c/93425
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-02-19 11:24:05 +00:00
Peter von der Ahé d19d50f45f Support async in LUB test
Change-Id: I2b806125bd566809a7ca28a1de1bc47d91f40426
Reviewed-on: https://dart-review.googlesource.com/c/93413
Reviewed-by: Jens Johansen <jensj@google.com>
2019-02-19 11:24:05 +00:00
Peter von der Ahé 6a65f84a63 Implement longest path to Object
Change-Id: Ibf882536dde5a218f5fda085359d419e3ee0d831
Reviewed-on: https://dart-review.googlesource.com/c/93410
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-02-19 11:24:05 +00:00
Jens Johansen 0720888236 Temporarily ignore context of errors in expression_test
To get the same context on errors for expressions compiled against
something we just compiled and something we've loaded from dill we need
the dill to contain offsets on TypeParameters.
We cannot currently change the binary format to include it, so for now
ignore the context in expression_test.

Change-Id: Ifbcc4352650fc56974bf5a78d9eb615ecec34e39
Reviewed-on: https://dart-review.googlesource.com/c/92743
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-02-19 10:18:29 +00:00
Jens Johansen 6ccdffdb35 Test for expression compilation, type variables and initialize from dill
Prior to f4379435dd,
using a type variable in an expression used for
expression compilation, where the type variable came from a class
that was loaded from dill would fail because type variables wasn't set
up so the type variable didn't exist in scope.

This adds a test for it - the actual fix was landed in
f4379435dd.

Change-Id: Icccf796b96853ece5ea96d4f29d76bb92b59fc83
Reviewed-on: https://dart-review.googlesource.com/c/92564
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-02-19 10:11:24 +00:00
Peter von der Ahé 5622925369 Test of class hierachy from dill file
Change-Id: Ib6a8916fd096e4a9a417dbef8a3519ffe1a595aa
Reviewed-on: https://dart-review.googlesource.com/c/93408
Reviewed-by: Jens Johansen <jensj@google.com>
2019-02-15 14:18:29 +00:00
Peter von der Ahé e9f239777f Split test so Kernel ClassHierarchy isn't required
Change-Id: I61d860ac4b11b056545dc2ec4f5fe80bc055e49d
Reviewed-on: https://dart-review.googlesource.com/c/93166
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2019-02-14 13:38:38 +00:00
Peter von der Ahé 25ee9b9d47 Rename test
Change-Id: Iae6e583120cb16d9ceb624554037d31ddb13ac0f
Reviewed-on: https://dart-review.googlesource.com/c/93163
Reviewed-by: Jens Johansen <jensj@google.com>
2019-02-14 13:38:38 +00:00
Peter von der Ahé 7ff5be0ceb Convert LUB test to use type parser
Change-Id: I4833793fb12bb2ca5c0b0118bfc3bf525573f66a
Reviewed-on: https://dart-review.googlesource.com/c/93031
Reviewed-by: Jens Johansen <jensj@google.com>
2019-02-14 09:02:20 +00:00
Peter von der Ahé cf5a7cf36a Simplify class_hierarchy_test: Move tests of getLegacyLeastUpperBound to own file
Change-Id: Iff64676644f17c32dea2b01e0c25e92af1f63774
Reviewed-on: https://dart-review.googlesource.com/c/93024
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2019-02-13 14:35:15 +00:00
Peter von der Ahé 857d834e64 Remove obsolete expectMoreSpecific parameter
Change-Id: I6d5ff79ba0eec022812da14201fb30ae2625d355
Reviewed-on: https://dart-review.googlesource.com/c/92126
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2019-02-13 10:51:55 +00:00
Peter von der Ahé 0e4f917759 Implement subtyping of optional function parameters
Change-Id: I25e7fecf8c3080c1558f6a2d499b9ca618b42824
Reviewed-on: https://dart-review.googlesource.com/c/92122
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2019-02-07 14:10:01 +00:00
Peter von der Ahé 86f5aed890 Finish implementing IsTypedefSubtypeOf
Change-Id: Ib62f2100a85e10e4ef1eed3ed12144a90bc5e714
Reviewed-on: https://dart-review.googlesource.com/c/92043
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-02-07 14:10:01 +00:00
Peter von der Ahé 8d5b5bba41 Allow for non-function types in alias builders.
Change-Id: I735ee2df97a21a5cef38d18bdb35f83117749be6
Reviewed-on: https://dart-review.googlesource.com/c/92042
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2019-02-05 10:05:32 +00:00
Peter von der Ahé f45d103d67 Finish implementing IsTypeParameterSubtypeOf
Change-Id: I5e37f87946423b4c1373fb49b2ef482172ce2c87
Reviewed-on: https://dart-review.googlesource.com/c/91821
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-02-05 10:05:32 +00:00
Peter von der Ahé 967b5fbac3 Finish implementing IsFunctionSubtypeOf
Change-Id: I5bd0aa4cbf2e5e16771bbfe8bd2d4ee3f8de2862
Reviewed-on: https://dart-review.googlesource.com/c/91820
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2019-02-01 13:07:57 +00:00
Peter von der Ahé 0d7bdd734a Ensure that top types are equivalent.
Change-Id: I7555a2b505aa750bff6f0050279fbe52608ed760
Reviewed-on: https://dart-review.googlesource.com/c/91800
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-02-01 13:07:57 +00:00