Johnni Winther
a577d0aea5
[cfe] Add weak mode testing
...
Change-Id: I3670e77a205404c0b35ee551a18c6ebdc2ecab33
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128069
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-12-13 09:20:08 +00:00
Dmitry Stefantsov
4df5b5458a
[cfe] Implement NNBD-aware lower / upper bound algorithms
...
Change-Id: I1def2843f41938e8aee39d12fc4e2807b0c5a1b3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126725
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-12-12 11:00:21 +00:00
Johnni Winther
97c2ca5ff1
[cfe] Use valid static types and file offsets in collections transformation
...
Closes #39566
Change-Id: I589d0dd568b3ea939bb1238b1c61fca6867e737e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127320
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-12-06 10:58:20 +00:00
Jens Johansen
0dc6d59d52
[CFE] Fix crash caused by name clash of loadLibrary tearoff method
...
Fixes #39682
Change-Id: I0e326df9390e05ede939f0019e94f8abe1fb7983
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127460
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
2019-12-06 09:29:19 +00:00
Samir Jindel
1d4c45d2d0
Re-land "[vm/cfe] Elaborate for-in statements during async transform"
...
This removes the component of the change which updates the kernel binary
format.
Change-Id: I86dbfe0ea61453bbea6eee200743961d0d0c3814
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127002
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Teagan Strickland <sstrickl@google.com >
2019-12-05 14:06:08 +00:00
Dmitry Stefantsov
47a9ebea76
[cfe] Make API of as-instance-of and legacy LUB/GLB library-specific
...
Change-Id: I1991c66e654ef537243d9f25f17070acbfa13af9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126380
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-12-05 13:32:28 +00:00
Johnni Winther
2ea8ff5ae7
[cfe] Don't continue shorting in explicit extension null aware access
...
Change-Id: Icd4ca31d4ca3c1601f190c3661cfd61b3f96db3d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126735
Reviewed-by: Jens Johansen <jensj@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-12-04 09:24:49 +00:00
Clement Skau
89e31069e8
Revert "[vm/cfe] Elaborate for-in statements during async transform"
...
This reverts commit 63333deed6 .
Reason for revert: Causes failures on Flutter HHH CI in the "flutter test hostonly_devicelab_tests" step due to kernel binary format version mismatch.
Original change's description:
> [vm/cfe] Elaborate for-in statements during async transform
>
> This allows us TFA to analyze the iterator calls and we generate much tighter
> code in AOT.
>
> However, due to the increased inlining opportunities, we end up emitting 0.5%
> more code. Inlining of the _GrowableList iterator specifically also includes the
> concurrent modification check and error handling.
>
> Calls to get:iterator, moveNext and get:current account for 7.12% of all InstanceCall
> instructions in Flutter Gallery.
>
> Fixes https://github.com/dart-lang/sdk/issues/39516
> Issue https://github.com/dart-lang/sdk/issues/39566
> Issue https://github.com/dart-lang/sdk/issues/39565
>
> Change-Id: I8dcc08b7571137e869a16ceea8cc73539eb02a5a
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126381
> Commit-Queue: Samir Jindel <sjindel@google.com >
> Reviewed-by: Martin Kustermann <kustermann@google.com >
TBR=kustermann@google.com ,sjindel@google.com ,johnniwinther@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: I89b88c3d9f7c743fc340ee73a45c3f57059bcf30
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126734
Reviewed-by: Clement Skau <cskau@google.com >
Reviewed-by: Teagan Strickland <sstrickl@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
Commit-Queue: Clement Skau <cskau@google.com >
2019-12-03 12:29:35 +00:00
Johnni Winther
5013ce6e5d
[cfe] Use correct types and errors in late lowering
...
Change-Id: I6e7dcbd96e151a69fc67a6cd5e5af1620760b02a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126647
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com >
2019-12-02 15:00:18 +00:00
Johnni Winther
1454a67e09
[cfe] Don't use multiple null-aware guards in opt-out
...
Change-Id: I15bd991577ffcc309569ee4a5512dfb29c7874ee
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126732
Reviewed-by: Jens Johansen <jensj@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-12-02 12:19:27 +00:00
Samir Jindel
63333deed6
[vm/cfe] Elaborate for-in statements during async transform
...
This allows us TFA to analyze the iterator calls and we generate much tighter
code in AOT.
However, due to the increased inlining opportunities, we end up emitting 0.5%
more code. Inlining of the _GrowableList iterator specifically also includes the
concurrent modification check and error handling.
Calls to get:iterator, moveNext and get:current account for 7.12% of all InstanceCall
instructions in Flutter Gallery.
Fixes https://github.com/dart-lang/sdk/issues/39516
Issue https://github.com/dart-lang/sdk/issues/39566
Issue https://github.com/dart-lang/sdk/issues/39565
Change-Id: I8dcc08b7571137e869a16ceea8cc73539eb02a5a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126381
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2019-11-29 16:42:36 +00:00
Daco Harkes
f9cedb6813
[vm/ffi] Fix source information in generated AST nodes
...
Fixes: https://github.com/flutter/flutter/issues/39916
Fix verified by manually generating the assembly snapshot and seeing the offending DWARF output be fixed.
Old DWARF:
```
.string "" // Empty filename in file table.
.uleb128 0
.uleb128 0
.uleb128 0
```
New DWARF:
```
.string "dart:ffi/struct.dart"
.uleb128 0
.uleb128 0
.uleb128 0
```
Change-Id: I60b6ff349deb70148c1a475b242c99e7c582d8c4
Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126650
Commit-Queue: Daco Harkes <dacoharkes@google.com >
Auto-Submit: Daco Harkes <dacoharkes@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2019-11-28 16:07:45 +00:00
Johnni Winther
659b32ffc8
[cfe] Handle chained null shorting and null aware if-null set
...
Change-Id: I39d2448a957ca7f4f3d1f027e543f773b300ce9b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126645
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2019-11-28 12:44:55 +00:00
Aske Simon Christensen
18f23124ad
[cfe] Print nullability on types in messages for opt-in libraries.
...
This CL changes the message template generator to add an extra
'isNonNullableByDefault' parameter to 'withArguments' for all
messages that include types, thus forcing the reporter to specify
whether the library that the message belongs to is opted in to NNBD.
When the message is formatted, a '?' is added to all nullable types
if the message is reported for an opt-in library.
Change-Id: I4e1861eba48043c570afad3f40bc3dccfd2e5668
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124984
Commit-Queue: Aske Simon Christensen <askesc@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-11-25 14:58:45 +00:00
Aske Simon Christensen
e84af9b761
[cfe] Disallow annotations on type parameters of function types
...
Also, do not copy annotations on type parameters of functions into
their inferred types.
See https://github.com/dart-lang/language/issues/656
Change-Id: I1460007645a32ac56a505b23ab3ee8a457c3f994
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123732
Commit-Queue: Aske Simon Christensen <askesc@google.com >
Reviewed-by: Erik Ernst <eernst@google.com >
2019-11-25 14:55:55 +00:00
Johnni Winther
cb6ab6eaa2
[cfe] Handle untyped initializing formals for late fields
...
Change-Id: I7cd0612ea7690d1679fbd7269f628ec5bc65dd05
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126040
Reviewed-by: Jens Johansen <jensj@google.com >
2019-11-25 13:59:25 +00:00
Dmitry Stefantsov
1f382890a7
[cfe] Make inference NNBD-aware
...
Change-Id: I7a793c87b00c97a7d4b05ba94116215d8f6d2a89
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125970
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
2019-11-22 12:09:14 +00:00
Johnni Winther
970c164826
[cfe] Use correct types in transformations and start verifying getStaticType
...
With this fix Expression.getStaticType no longer throws on any known cases.
Users of getStaticType can therefore avoid enclosing static type computation
in try-catch.
Closes #38597
Change-Id: I52eaacd30256333d7c368e5d14f4e4956bafc96f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121988
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-11-21 22:15:58 +00:00
Dmitry Stefantsov
0b9665fc8b
[cfe] Use library's non-nullable modifier when creating new types
...
It's a part of internal cleanup of pkg/kernel and pkg/front_end. The
library's status is queried when the new types are created for it in
order to determine the value of the nullability modifier of the type.
Change-Id: Id653c511d17b3811a26b1751876a6e5036cdbed9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125261
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-11-21 16:00:25 +00:00
Johnni Winther
acff31ed26
[cfe] Support null-aware index access
...
Change-Id: I54b58624722845e4b008b90e675516ec274bc2da
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125960
Reviewed-by: Jens Johansen <jensj@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-11-21 14:36:30 +00:00
Johnni Winther
4c8c44ec78
[cfe] Implement lowering for constructor initialization of late fields
...
Change-Id: Ia6187c3eac630a2bd4351868aadfaa8771648830
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125821
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2019-11-21 09:36:35 +00:00
Johnni Winther
246b23e5be
[cfe] Implement late lowering for local variables.
...
Change-Id: I18f848561f7eca61f662f8083f7ca1451a8a0b3d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125605
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2019-11-20 08:30:18 +00:00
Brian Wilkerson
1f933abcee
Convert a compile time error into a parse error (issue 39389)
...
Change-Id: I115c7bb4ab05f8c6e9ddc566985126a1b9a09842
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125621
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2019-11-19 18:25:29 +00:00
Jens Johansen
fae6affeea
[CFE] Incremental compiler has experimental invalidation strategy (first checkpoint)
...
This CL adds an option to the incremental compiler that enables an experiment
invalidation strategy that only rebuilds bodies for changed libraries (if possible).
As far as we know, for valid applications this should work fine, although,
applications with errors in them (or where the changed libraries have errors in them)
might not issue those errors correctly.
Known caveats:
- Doesn't work on dill library builders (aka if you load from dill we
still have to invalidate transitively).
- Only body-in-brace-changes --- cannot add new private members for
instance, nor changed fields.
- It doesn't track which bodies has changed so there's room for
improvement in regards to for instance mixin stuff where we bail
if a class from an invalidated file is used as a mixin.
- Offsets for methods, for instance, isn't updated
- Any errors issued at the outline stage won't be issued.
Change-Id: I6edf073ec47ea31429479ffe67e2e8b6d2cb80dd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124980
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-11-19 13:27:14 +00:00
Dmitry Stefantsov
d9d5fbc109
[cfe] Create TypeParameterTypes with default nullabilities
...
Change-Id: I85be937240ba5cc39840e78f374902c1e36521a0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124327
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
2019-11-19 11:22:43 +00:00
Dmitry Stefantsov
203583b41b
[cfe] Account for invalid type being part of a type in subtype check
...
Bug: http://dartbug.com/39421
Change-Id: I9d70f6722134ece7f567d0aab9b6a0d661ea650e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125268
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
2019-11-19 09:42:03 +00:00
Kallen Tu
62c67e40dc
Added language test for reified torn-off methods with explicit variance.
...
Change-Id: I51892de84245bc31f442b5b01ab3d03ac869e86f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124913
Reviewed-by: Leaf Petersen <leafp@google.com >
Commit-Queue: Kallen Tu <kallentu@google.com >
2019-11-18 22:50:55 +00:00
Johnni Winther
7c1f58f9fe
[cfe] Demote inferred type variables when used as type arguments
...
Closes #39346
Change-Id: I997347d04e7a3c3cb9786f31cd6c24513307de92
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125502
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-11-18 14:57:43 +00:00
Jens Johansen
06e6554d2e
[CFE] getFormal via Identifier (name and offset) and not just String (name)
...
Change-Id: I78059e627edaf8876eee74f878b36cfce990b78f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125265
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-11-18 13:48:53 +00:00
Johnni Winther
9e03a639ea
[cfe] Split inferMethodInvocation into invocation variants
...
Change-Id: I4ca0cb419652b4d822d8eb945a77b7243012ed1e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125411
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2019-11-18 10:03:33 +00:00
Johnni Winther
4b5589e0cb
Reland "[cfe] Use StaticTypeContext for getStaticType" and more"
...
This relands commits
"[cfe] Use StaticTypeContext for getStaticType"
45033c6ad9
"[cfe] Move caching of thisType to CoreTypes"
fab25cbe0c
"[vm/bytecode] Notify static type context when entering/leaving library"
c9f88ae253
Change-Id: I407d6b0e3b3df503cedc9fcb2c834d835cf083f8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125343
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-11-16 05:50:58 +00:00
Johnni Winther
8e176998b4
[cfe] Support late lowering of instance fields
...
Change-Id: I9e9261efa9c0b09aa95a083496e8073c56498a38
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124987
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2019-11-15 13:29:45 +00:00
Johnni Winther
09d75d94e7
[cfe] Avoid use of #isSet# field on non-nullabel late fields
...
Change-Id: I8dd77ee3eb1401ab29c87d303bdcface1d4d823e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124691
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2019-11-15 13:29:45 +00:00
Johnni Winther
45996ee170
[cfe] Add late field lowering for static/top-level fields
...
Change-Id: I16625257251b0badbcdfc1c9504899421db8b83f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124681
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2019-11-15 13:29:45 +00:00
Sigmund Cherem
a75ffc8956
Add non-NNBD language version marker to all sdk (non-nnbd) files
...
This is practically a copy of the change in
https://dart-review.googlesource.com/c/sdk/+/118040 but applied to the non-nnbd
sdk.
Even though there is no intent to run the non-nnbd sdk with the non-nullable
experiment, we need to add this annotation because of how we
intend to gradually start testing NNBD. The libraries.json under
sdk_nnbd is allowed to point to libraries under the non-nnbd sdk in order to
temporarily build without errors until all patch files are migrated and all CFE
issues are addressed.
Change-Id: I53c1123a8d86c10695832a8a0ad35adb7b4d92fd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125181
Commit-Queue: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Bob Nystrom <rnystrom@google.com >
2019-11-15 00:22:47 +00:00
Johnni Winther
ef5fb7d3f4
Revert "[cfe] Use StaticTypeContext for getStaticType" and more
...
This reverts commits
"[cfe] Use StaticTypeContext for getStaticType"
45033c6ad9
"[cfe] Move caching of thisType to CoreTypes"
fab25cbe0c
"[vm/bytecode] Notify static type context when entering/leaving library"
c9f88ae253
Change-Id: I6171f6a74b97f2f4a77a36c242330fc2db94c82f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125341
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Sigmund Cherem <sigmund@google.com >
Commit-Queue: Aart Bik <ajcbik@google.com >
Auto-Submit: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Aart Bik <ajcbik@google.com >
2019-11-14 22:51:43 +00:00
Dmitry Stefantsov
fab25cbe0c
[cfe] Move caching of thisType to CoreTypes
...
Closes #38225 .
Bug: http://dartbug.com/38225
Change-Id: I0274bc390ca2d098896f578ea7ddf65527d82027
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124325
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-11-14 16:01:26 +00:00
Johnni Winther
6e85f3337a
[cfe] Support null-aware cascade
...
Change-Id: I1db4125b4469e6a8b6adc5ec6e4dcafc0a26da4a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124680
Reviewed-by: Aske Simon Christensen <askesc@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-11-14 12:39:16 +00:00
Martin Kustermann
7a0d9455e4
[vm/aot] Ensure interface targets are re-resolved after deduping of mixin application classes
...
When the CFE compiles an application as a whole (reads in all source
code), the interface targets to members of mixin applications are the
original mixin classes.
When the CFE compiles an application modularly (dependencies are
supplied as kernel files), the interface targets to members of mixin
applications are the copied members in the mixin application classes.
This slight difference does not surface in any test failures. Yet if we
start running our AOT kernel pipeline, we will deduplicate the mixin
application classes. This leaves dangling references (with no target).
The C++ AOT compiler, `gen_snapshot`, will crash if it hits any of
those.
Issue https://github.com/dart-lang/sdk/issues/39375
Change-Id: I17a57370a87cfbdc174829c2e68ecdb7c4a9757e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124993
Commit-Queue: Martin Kustermann <kustermann@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Samir Jindel <sjindel@google.com >
2019-11-13 20:03:04 +00:00
Johnni Winther
f443bc918e
[cfe] Add tests for inheritance from opt-out libraries
...
Change-Id: If139945dfdd808da0c24ac550ecfa235b41d3c23
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123737
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
2019-11-13 10:08:08 +00:00
Johnni Winther
d4f1512e00
[cfe] Support forEffect and readOnlyReceiver in IndexSet
...
Change-Id: I17aeac01ad4330fe873e7fe693fd2fd6e427d120
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124986
Reviewed-by: Jens Johansen <jensj@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-11-13 08:50:57 +00:00
Jens Johansen
b2fa458f3d
[CFE] Support experiments in the incremental compiler tests
...
Change-Id: I36b7152abc0a9281801d2e1a5e68588d8c0e93a9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124981
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
2019-11-12 09:32:08 +00:00
Johnni Winther
4a661e19e2
[cfe] Remove type_promotion_look_ahead_listener.dart
...
This experiment isn't used.
Change-Id: I8a45283182e361f6fc69f586346e01913b83560a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124686
Reviewed-by: Jens Johansen <jensj@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-11-11 11:51:57 +00:00
Jens Johansen
48f0b83ff2
[CFE] Allow ! in cascade
...
Fixes #39286 .
Change-Id: I4e7270dacf7bc43accae4d45d26146cfb7d2b1ff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124330
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-11-11 09:44:12 +00:00
Johnni Winther
9c983d2ee3
[cfe] Support extensions via prefix
...
Change-Id: I6c1e69e5a5c83f5177754a350f5efbca9384972b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124540
Auto-Submit: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-11-08 19:53:00 +00:00
Johnni Winther
fd9f79c25d
[cfe] Handle deferred explicit extension access
...
Change-Id: I53e13ac3b4f1bdcd26ccec86814fb4d708c5cceb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124542
Reviewed-by: Erik Ernst <eernst@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-11-08 14:19:47 +00:00
Jens Johansen
ee2efe8e58
[CFE] Add more incremental compiler tests, prepare for better invalidation strategy
...
Change-Id: I94a61b1fa9bab466a7fc09d873fc75dea6b3aeb1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124324
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
2019-11-08 09:55:26 +00:00
Jens Johansen
5eaccc20ba
[CFE] Incremental test suite now has expect files
...
Change-Id: I704b87d56686cb282898511fb95d6b47ee9a1c9a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124323
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-11-08 09:47:36 +00:00
Kallen Tu
54d7b0307b
Refactor type_inference_engine and take type parameter variance into account for contra. checks.
...
This change will optimize code generation for contravariant checks on
variantly sound type parameters. We avoid emitting `_check()`s.
This will also add the change to ensure that reified types of torn off
methods are correct.
Change-Id: Ic7a4aa8f92b5e3489f7cd590070772358ef2c84b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124108
Commit-Queue: Kallen Tu <kallentu@google.com >
Reviewed-by: Leaf Petersen <leafp@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-11-07 18:43:19 +00:00
Aske Simon Christensen
c504476dc4
[CFE] Extend verifier to check constants.
...
Add a flag to the verifier that tells it to assume that full constant
evaluation has been performed. It will then complain about anything
that should not be there after constant evaluation.
Also fix two bugs exposed by the new checks:
- The constant transformer did not visit annotations on type parameters
in function nodes.
- The InstanceCreation constructor did not set the parent pointers of
its children.
Change-Id: Ieef865a51892918e524da973b0cbaf52ed467181
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123400
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Aske Simon Christensen <askesc@google.com >
2019-11-07 09:53:26 +00:00