Commit Graph

6018 Commits

Author SHA1 Message Date
Johnni Winther 7425ef9470 [cfe] Support --link-dependencies on fasta compile
Change-Id: I8af2d127764e4ef60a1ea0a5ab0804a417ce42f7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143808
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-20 08:34:36 +00:00
Johnni Winther d690a0c7c4 [cfe] Handle nullability of typedefs
Closes #41496
Closes #41498
Closes #41499
Closes #41501
Closes #41505

Change-Id: I425b6137f9ea41d01c95332ef1f7d43ca7afb5a6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143811
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-20 07:03:55 +00:00
Dmitry Stefantsov d5dea0056b [cfe] Improve diagnostics on text serialization failures
This CL also includes the following changes:
- The .registerTags() method is added to the Case combinator.
- The actual canonical names' root is passed into the deserializer.
- Some text serialization failures are fixed and the corresponding
status entries in text_serialization.status removed.

Change-Id: I222dfa3fc348dddf83e0c6edb92f15d08b8e73e9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143803
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
2020-04-17 10:53:47 +00:00
Jens Johansen a85a7fc254 [kernel/CFE] Better mixed compilation mode handling
* Throw a specific error on mixed compilation mode; let the incremental
  compiler ignore that error when trying to initialize (i.e. it doesn't
  initialize from it, but it doesn't show any warning either).
* Allow some mixed mode stuff: Eventually the SDK should be in agnostic
  mode, so we should allow mixing agnostic with non-agnostic.

Fixes #41493.

Change-Id: Idb33fb31afe6bbba6d74134cb722ca825751898b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143583
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-04-17 10:22:46 +00:00
Johnni Winther 594f77715b [cfe] Handle potentially constant type expression in is expression
Closes #41385

Change-Id: Ia2fa829621931d52c5e41ac0414d12b9caa1256d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142860
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-16 09:07:21 +00:00
Johnni Winther f48a3afbae [cfe] Handle nullability difference in LUB computation
Closes #41114

Change-Id: Ifc7d3a35c4274bbb5651ced1c28c984e5c1a34ad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142985
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-04-16 06:52:30 +00:00
Jens Johansen 9f06c32b45 [CFE] Fix crash when implementing or mixing in a functionType
Bug: 41265
Change-Id: Idf4fbc44c210008c3c94639c138adbd3afec2cef
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143522
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-04-16 06:35:50 +00:00
Alexander Thomas 3c85da7778 [release] Bump version to 2.9
Change-Id: I2fc393cbb7a9111f4c09db6a2a7a202eeb88992c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142996
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2020-04-15 18:36:42 +00:00
Johnni Winther da95c79901 [cfe] Handle nnbd is-test in constant evaluation
+ detect ~/ evaluation errors

Change-Id: Ic3f979c7516ed9aa2da0eab8b8d902987107c189
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142982
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-04-15 17:29:43 +00:00
Johnni Winther eb18db2116 [cfe,kernel] Add Field.isInternalImplementation
This bit is required to support synthesized field used for the late
lowering. These fields should not be seen as part of the interface,
that is, classes that implement the class declaring the late field should
not be required to override these fields.

Closes #41436

Change-Id: I9a98322bdd1842b46bde34fff1176a7577672e0f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142998
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-15 13:46:43 +00:00
Sam Rawlins 2feaa2ad81 analyzer: Add SecurityLintCode and a new getter on ErrorCode, isIgnorable
`isIgnorable` is the new way to determine whether a report from the
analyzer can be ignored. Codes with an ERROR severity are not ignorable,
and the new SecurityLintCode is not ignorable.

Change-Id: Ied72f1b61808eda088b947b8836e0cf1dfdd9850
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143331
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-04-15 01:51:59 +00:00
Johnni Winther dc97454b63 [analyzer,cfe,dart2js] Add pretty printing to id testing
Adds support for pretty printing verbose annotations.
Adds support for force updating annotation texts useful for applying
the pretty printing to valid annotations.

Change-Id: I8fe9b6d2f8198bd5e160854053c8d964ef832a8d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129710
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-14 13:24:09 +00:00
Johnni Winther 208ab625c1 [cfe] Avoid reporting missing implementation on internal fields for late lowering
Closes #41436

Change-Id: Ib6227a34ca188a379f8910a2911082caef280d79
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142984
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-14 12:21:19 +00:00
Martin Kustermann e2b6cc93b6 [vm/async] Update async transformation to take NNBD mode into account
The removal of unsafeCast causes flutter galley size regressions:

  - armv7: -0.43%
  - armv8: -0.21%

which we should look into recovering by having better inlining heuristics.

Issue https://github.com/dart-lang/sdk/issues/41373
Closes https://github.com/dart-lang/sdk/issues/41307

Change-Id: I7c0ba4c9598e13f01e807a607c83d50cf03e9abe
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142501
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2020-04-11 08:56:52 +00:00
Johnni Winther 0d16ff6d86 [cfe] Handle static type of access on Never
Closes #41273

Change-Id: Ia236481ab47033198d7952086cdf5c9c8f5a34b7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142366
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-04-08 08:46:02 +00:00
Johnni Winther 04b6c6a116 [cfe] Handle Null <: Never in mixed inheritance bounds check
Change-Id: I994f76b3b4f6d498a8e41f7e34849616960dca08
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142368
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-06 15:18:31 +00:00
Johnni Winther 32f82b5852 [CFE] Add NNBD compilation mode into kernel component
Fixes https://github.com/dart-lang/sdk/issues/41311

Change-Id: I2f4345f8ca7a31da705fcae37a28a8b801feb5e3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142149
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-04-06 14:00:01 +00:00
Johnni Winther 9f80082ce3 [cfe] Avoid unconsolidated override checks in mixed inheritance
Change-Id: I1cd8aa5bdf53010d8f394e5981239211921f2117
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142365
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-04-06 09:51:30 +00:00
Johnni Winther 0e5624a083 [cfe] Handle static typing of nullable access to Object members
Closes #41282

Change-Id: I39d0bf8a35e635e860f4bf810ee37e00950e3a8f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142364
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-06 09:22:00 +00:00
David Morgan 9f5866b012 Revert "[cfe] Warn on extends, implements and with Function"
This reverts commit 28eb884d47.

Reason for revert: Cases in google3 break the build.

Original change's description:
> [cfe] Warn on extends, implements and with Function
> 
> Change-Id: I29d8ae9e36c7540dbc5af8a0ba291b092ea036c6
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142154
> Reviewed-by: Sigmund Cherem <sigmund@google.com>
> Commit-Queue: Johnni Winther <johnniwinther@google.com>

TBR=johnniwinther@google.com,sigmund@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I623435fe29cd0c7f990f8b86cfd33a6f68690575
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142373
Reviewed-by: David Morgan <davidmorgan@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: David Morgan <davidmorgan@google.com>
2020-04-06 08:32:31 +00:00
Alexander Markov feff4f48f4 [vm/nnbd] Fix expression evaluation in NNBD strong mode
When creating a library for expression evaluation we should copy
NNBD properties from the real library, otherwise VM may refuse
to load resulting kernel binary.

Change-Id: I594b718c74e516f998593cde55ea0cabaf3b4024
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142443
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2020-04-06 00:55:30 +00:00
Johnni Winther 05103dfe5a [cfe] Implement factor function
+ share test with analyzer

Change-Id: Ie19a8746e65986f46f75c1bdd6bac3e79aedb922
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142369
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-05 18:16:00 +00:00
Johnni Winther a7f1a5e677 [cfe] Handle A extends FutureOr<B> <: FutureOr<B>
Change-Id: Ib5580328f006b033b2c004083b575a2cf5aed551
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141541
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-05 06:31:19 +00:00
Johnni Winther 28eb884d47 [cfe] Warn on extends, implements and with Function
Change-Id: I29d8ae9e36c7540dbc5af8a0ba291b092ea036c6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142154
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-04 05:23:37 +00:00
Paul Berry 47293f3030 Prepare to publish analyzer 0.39.5
Change-Id: Ib5c8319fab68d52bdf06d72678647e9212597c8a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142323
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2020-04-03 17:28:47 +00:00
Martin Kustermann 6b9cf97641 [vm/async] Run pkg/front_end/tool/update_expectations.dart for CFE failures
This is a follow-up to https://dart-review.googlesource.com/c/sdk/+/142022

Change-Id: Iea3ccc4ffb2efcc379371c551d27022e30adf059
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142361
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
Auto-Submit: Martin Kustermann <kustermann@google.com>
2020-04-03 17:06:57 +00:00
Alexander Markov 04d002e3fe [cfe] Add runtime/tests/vm/dart to the list of opt-out tests
Tests in runtime/tests/vm/dart are not migrated yet and fail to compile
in null-safety mode. We cannot migrate those tests without making a
copy because we still need to run them in legacy mode.

Issue: https://github.com/dart-lang/sdk/issues/41314

Change-Id: I219f552810d603c6a36547fb3faa23c720e2f278
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142265
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2020-04-03 16:11:16 +00:00
Johnni Winther 4039373d90 [cfe] Handle covariant operator == parameter
Closes #41283

Change-Id: Ibd452dd181ce8ff17a48ffb1e12f312fe64ec216
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142145
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-04-03 10:54:13 +00:00
Martin Kustermann c4a7c3488e [vm/async] Make async transformer use typed variables, make async patch use function types
This gets rid of a slow AssertAssignable (function type test)
in _asyncThenWrapperHelper/_awaitHelper, which currently falls back to the slow table
search:

  AssertAssignable
    ^--> TypeTestingStub
          ^--> SlowTypeTestStub
               ^--> Subtype6TestCacheStub

Issue https://github.com/dart-lang/sdk/issues/37668

Change-Id: I3b6517b7e348e39619e8096d6ac2a4b179bb3242
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142022
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Clement Skau <cskau@google.com>
2020-04-03 08:28:47 +00:00
Jens Johansen ebdc894324 [CFE] Fix crash with constructor recovery; add error recovery tests
Change-Id: I67f7a4592e562e1b1411f424d96c1a7b1d49d26b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142160
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-04-03 06:24:46 +00:00
Jens Johansen 5e3972ffd4 [CFE] Sort status files
Change-Id: Ia7e65057fc15ee36e6e9547906bcc9298fc3df93
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142141
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-04-03 06:24:26 +00:00
Johnni Winther fae35fca47 [cfe] Handle potentially constant type expressions in CFE
Closes #41305

Change-Id: Ibb839c5b6619ae2f7e90cc956c7de20d8c76ae3d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142120
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-04-02 13:23:04 +00:00
Johnni Winther 46bb15edf3 [cfe] Fix inheritance test data discrepancies.
Change-Id: I367aace60324a7755f795d2f24aaf0d138bc8d59
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141602
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-04-02 13:14:39 +00:00
Jens Johansen 5c1ea30daf [CFE] Fix load_dill_twice_test
When it prints the important parts (here) is:
* Print (e.g.) "class Bar extends core::Object" --- it thus visits the
  canonical name for "core::Object"
* Prints fields in "Bar" (and thus lazy loads more content).
* Prints constructors with stuff like "super dart.core::Object::•()".

With NNBD SDK this is what happens:
* Prints "core::Object" via *canonical name*.
* Lazy loads; this create a reference on "core::Object".
* Prints "core::Object" via *reference* -> this gives another name (core2).

On the second print it:
* Prints "core::Object" via *reference* (as it was already loaded)
  -> this gives the previous "other name" (core2).
* Lazy loads
* Prints "core::Object" via *reference* -> this gives the previous
  "another name" (core2).

The important part is, that when loading class Bar (in lazy loading
mode) it has lots of members --- e.g. "Bar::_identityHashCode" which is
a member signature. The name is private and thus has a Library
(dart:core) --- via reference. This creates a reference on the
canonical name for "dart:core".

With a non-NNBD sdk the same thing happens, but there member signatures
aren't there, so dart:core is never given a reference and it thus
continues to use the reference.

The "fix" here is to print the whole thing (and thus lazy load what's
needed) up front, before using the output for a comparison.
One might argue that the ast_to_text printer should be fixed instead,
but for now that's not done.

Fixes #41293.

Change-Id: I87bdfc6357196f52e560ec90de6f5ea3ff610b1a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142026
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-04-02 13:11:54 +00:00
Jens Johansen 1a744e3341 [CFE] Synthesize enough of the sdk to be able to compile dart2js without an sdk without crashing
Change-Id: I0bf8fa796acebb0368669e38bf085bca55707034
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141892
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-04-02 11:18:04 +00:00
Erik Ernst 0579a9250a [cfe] Pass typeArguments from parser
This is the "next step" mentioned in
https://dart-review.googlesource.com/c/sdk/+/141240.

`List<UnresolvedType> typeArguments` were dropped (and null was passed)
in several cases in `handleSend`, but they are needed in
BodyBuilder.buildConstructorInvocation in the case where the receiver
of the constructor invocation is a type alias.

This CL ensures that the `typeArguments` are passed when needed, and a
named parameter `isTypeArgumentsInForest` is passed in order to preserve
the information about whether or not they have been to the `forest`.

The CL also adjusts tests '{generic_,}usage_type_variable_*' to fit the
decision made in language issue 848 that a type alias cannot be used
for constructor invocations when it (directly or indirectly) denotes
a type variable.

Change-Id: I8d831457e35a7455f8fcfe461a10872c61555748
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141543
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
2020-04-01 16:57:15 +00:00
Johnni Winther d68f552e70 [analyzer,cfe] Handle (un)assigned state in try-statement
This handles (un)assigned state in try-statement that do not
complete normally. In this case we could create a variable model
for an unreachable state that would be both assigned and unassigned
leading to an assertion failure.

Closes #41284

Change-Id: Id4c7689bc7c614338af3542eb342c964696fca1e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141981
Auto-Submit: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2020-04-01 15:46:15 +00:00
Jens Johansen 47b57e8995 [CFE] Cache checkInheritanceConflict calculation
When compiling a big internal app with the NNBD SDK there's a big time
regression. This is a first "poor-mans fix" that "fixes" it via caching
which probably is not the best solution, but does the trick.

Without change
==============

Without NNBD platform:

$ out/ReleaseX64/dart pkg/front_end/tool/_fasta/compile.dart --target=dart2js --platform=out/ReleaseX64/dart2js_platform.dill -v bigapp.dart
[...]
0:00:14.238352: Built class hierarchy in 1663ms.
[...]
0:00:55.871356: Wrote component to bigapp.dart.dill in 5690ms.


With NNBD platform:

$ out/ReleaseX64/dart pkg/front_end/tool/_fasta/compile.dart --target=dart2js --platform=out/ReleaseX64NNBD/dart2js_platform.dill -v bigapp.dart
[...]
0:04:41.842548: Built class hierarchy in 268716ms.
[...]
0:05:22.120455: Wrote component to bigapp.dart.dill in 5407ms.

So: Big regression; it takes almost 4.5 minutes to built the class
hierarchy and almost as long extra to compile as a whole.


With change
===========

Without NNBD platform:

$ out/ReleaseX64/dart pkg/front_end/tool/_fasta/compile.dart --target=dart2js --platform=out/ReleaseX64/dart2js_platform.dill -v bigapp.dart
[...]
0:00:15.255893: Built class hierarchy in 2175ms.
[...]
0:00:55.203753: Wrote component to bigapp.dart.dill in 5306ms.

So: Without the NNBD platform there's basically no change.


With NNBD platform:

$ out/ReleaseX64/dart pkg/front_end/tool/_fasta/compile.dart --target=dart2js --platform=out/ReleaseX64NNBD/dart2js_platform.dill -v bigapp.dart
[...]
0:00:15.864901: Built class hierarchy in 2574ms.
[...]
0:00:55.640201: Wrote component to bigapp.dart.dill in 5363ms.

So: With the NNBD platform, the speedup is significant and there's basically no
change between using the NNBD platform or not.
Change-Id: I74993710a34f08f69421b03f2682ff8418af7599
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141982
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-04-01 12:28:34 +00:00
Jens Johansen 43079207d4 [parser] Parse a!?[0]
Fixes #41177.

Change-Id: I135f0b7aedbcb320ab0d1a1806b2ad3bedcda307
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141886
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-04-01 07:33:01 +00:00
Jens Johansen f2d27055bf [CFE] Add "annotate lines" option to parser suite
One can for instance run something like out/ReleaseX64/dart \
  --enable-asserts pkg/front_end/test/parser_suite.dart \
  -DupdateExpectations=true -DannotateLines=true

and have expect files look like this:

[...]
      // Line 5: }
      endBlockFunctionBody(1, {, })
    endTopLevelMethod(void, null, })

  // Line 6:
  endTopLevelDeclaration()
endCompilationUnit(2, )

Change-Id: I3d98bbd24117a8f91823e739b5174d87a8c36fbe
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141885
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-03-31 12:51:00 +00:00
Dmitry Stefantsov 2e822ae91b [cfe] Apply the special treatment of FutureOr in GLB for NNBD
For details see:
https://github.com/dart-lang/sdk/issues/37439#issuecomment-519654959

This CL implements the same special treatment of FutureOr to the
NNBD-aware algorithm for computing of GLB.

Change-Id: I6e95b9884738b426dce0152217d79fe0298404bf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140658
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
2020-03-31 09:16:49 +00:00
Jens Johansen 605f9eb030 [CFE] Perform transformPostInference when doing expression compilation
Previously, if using spread features, it would crash (if not before
when trying to serialize), and set literals wouldn't be transformed
away either (which the VM probably requires).

It should fix https://github.com/flutter/flutter/issues/41678

Change-Id: I40361d592e9e7a3fe820c4835aaac893c87d94fb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141620
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-03-31 06:48:19 +00:00
Johnni Winther 82d4bd1c7e [cfe] Handle member signatures from dill in class hierarchy builder
Closes #41210

Change-Id: I1e38e014c04f140dd37821375a6efbfe73f37562
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141545
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-30 14:09:31 +00:00
Erik Ernst 56748006a1 [cfe] Add missing .next in endImplicitCreationExpression
Said method seems to break the pattern of similar methods, and the
actual token seems to be wrong. This change seems to fix the issue.

Change-Id: I54fcaa0ce2a846cbe10dfe5edc4e30282c523731
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141544
Auto-Submit: Erik Ernst <eernst@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
2020-03-30 12:52:51 +00:00
Jens Johansen 7d4d26a013 [CFE] Add api to get language version for uri
Closes #41205

Change-Id: I9e55257341e7c53f4f68f9d636b04f8fd6bffb68
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141250
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-03-30 09:14:25 +00:00
Johnni Winther 6540f603d8 [cfe] Don't include member signature in id testing by default.
This prepares id testing for the unforked sdk where all Object
members add a member signature in the immediate opt-out subclasses
of Object.

Change-Id: Ife443582c4f88b6c8673aa560a700dbb88475c3b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141600
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-30 08:42:25 +00:00
Johnni Winther 0a9e57419b [kernel] Make verbose qualified names conditional in toStringInternal
Including the library name/uri in types and member names makes these
unreadable in most cases. This changes that default toStringInternal
to omit the library name/uri but supports a verbose mode that includes
the library name/uri for debugging the rare occasions where they matter.

Change-Id: I783e8bd0ac5d2f19c3051e8e7f226b240c8d1bc8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141546
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-30 08:41:15 +00:00
Erik Ernst f180511499 Add implementation of several parts of non-function type aliases
Generalize `TypeAliasBuilder.unaliasDeclaration` such that it takes
an argument `typeArguments` and uses that to handle the case where
a type alias application ultimately expands to a type variable (e.g.,
with `typedef F<X> = X`, `F<int>` expands to `int`), and also to
emit a compile-time error in the case where such a type alias is
used to invoke a constructor or invoke/tear-off a static member.

Next step: Pass `List<UnresolvedType> typeArguments` from `handleSend`
to `finishSend` etc. to `BodyBuilder.buildConstructorInvocation`,
which seems to be a somewhat larger refactoring; needed in order to
make `generic_usage_class_test` pass. Some other fix is needed in
order to make `generic_usage_type_variable_test` pass.

Change-Id: Icd3593f03c6348c50b1ec3d7c9676f1bd7c56daf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141240
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-03-28 09:35:02 +00:00
Johnni Winther ddea6e077a [cfe] Groups standard tests in update_expectations.dart
Change-Id: I4cc8d2ea7699bebf53bda63bca47031521f6e57f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141540
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-03-28 07:51:12 +00:00
Johnni Winther 4150349c7c [cfe] Handle throw in return type inference
Closes #41156

Change-Id: I6f5360ccf3f05c2f59de5db703d90431e0d61e7c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141100
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-03-27 15:59:27 +00:00