Commit Graph

4988 Commits

Author SHA1 Message Date
Johnni Winther 44e35b1daa [cfe] Check for misplaced type arguments on implicit creation expression
Change-Id: Ic3436f2bce0369d0efad9946cbbdae7c6bf334b9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/218400
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
2021-10-28 19:21:39 +00:00
Chloe Stefantsova ed0131bc7c [cfe] Change the order of hoisted initializers insertions
Change-Id: I61db6b57fffc11d62267b8648b4741a74d0a9f83
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/218440
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
2021-10-28 12:35:28 +00:00
Chloe Stefantsova 7fb17818f7 [cfe] Handle argument hoisting in redirecting initializers
Part of https://github.com/dart-lang/sdk/issues/47451.

Change-Id: Ic3564833cf87d5ccfb8b43f589c241104ce6df61
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217602
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
2021-10-28 08:41:00 +00:00
Johnni Winther 1972c11b4e [cfe] Support implicit super call
Closes https://github.com/dart-lang/sdk/issues/47545

Change-Id: I7adc75c574fd6d0be17f2f53066d34efd5d54a08
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217922
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-10-26 10:02:54 +00:00
Johnni Winther 25ef052cfc [cfe] Keep non-proper renames distinct in constant evaluation
Closes https://github.com/dart-lang/sdk/issues/47462

Change-Id: I669ca4f97bfbe10900453b1aa78211c52e0ad2e6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217720
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-10-26 06:45:00 +00:00
Johnni Winther 114ad79698 [cfe] Ensure separation between StaticGet/StaticTearOff/ConstructorTearOff
Change-Id: I5b8d1103c10fecaf8fdaa69ee62215deb7eebc38
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217641
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-10-26 04:53:00 +00:00
Chloe Stefantsova 29e0c5e2bc Add "super-parameters" experiment flag
Part of https://github.com/dart-lang/sdk/issues/47525.

Change-Id: If7bf6f39b9b3ade1769f158ea1ca45515f859a2a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217640
Auto-Submit: Chloe Stefantsova <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2021-10-21 16:50:15 +00:00
Johnni Winther d906c6de26 Reland "[cfe] Move createLibraryBuilder methods to loaders"
This is a reland of 0e7d0f5205

Original change's description:
> [cfe] Move createLibraryBuilder methods to loaders
>
> Change-Id: I912ab0494cc91a4a2b665a24a7d55362402542ff
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216940
> Commit-Queue: Johnni Winther <johnniwinther@google.com>
> Reviewed-by: Jens Johansen <jensj@google.com>

Change-Id: Ibb25413423a9bbd67c8788f9adce95c201ac8ebf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217603
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-10-21 14:24:06 +00:00
Johnni Winther 50d885e53c Reland "[cfe] Encapsulate Dill/SourceLoader.builders"
This is a reland of 2bbb5dc907

Original change's description:
> [cfe] Encapsulate Dill/SourceLoader.builders
>
> Change-Id: Ie98b3a243932cebeb845adb1cbe6c2cab1e92e0e
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216287
> Reviewed-by: Jens Johansen <jensj@google.com>
> Commit-Queue: Johnni Winther <johnniwinther@google.com>

Change-Id: I11611645337b4ea745d00a846a822ffcaedc9dec
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217580
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-10-21 12:00:37 +00:00
Chloe Stefantsova 33ac6e2c4d [cfe] Use invalid type when nonfunction typedefs aren't enabled
Closes https://github.com/dart-lang/sdk/issues/47495.

Bug: https://github.com/dart-lang/sdk/issues/47495
Change-Id: I18ff096dd2d33bcdcc1155de63a625051ef5efa0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217365
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Chloe Stefantsova <dmitryas@google.com>
2021-10-21 08:30:32 +00:00
Ahmed Ashour d041cf0478 Remove extra the, be and of
Fixes #https://github.com/dart-lang/sdk/issues/47504

TEST=No tests needed, only comments affected.

Change-Id: Ie096307b5ce314d328fea6780f396aaa226ad3b0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216182
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
2021-10-20 09:29:01 +00:00
Johnni Winther 3006908d7e Revert "[cfe] Encapsulate Dill/SourceLoader.builders" and "[cfe] Move createLibraryBuilder methods to loaders"
This reverts commits 2bbb5dc907 and 0e7d0f5205.

Change-Id: I140ae6eab70102d39b1bec665bedd3a3dbfb02bd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217300
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-10-19 23:14:11 +00:00
Alexander Thomas 056afdac39 [testing] Merge dart2js-batch into the global batch option
* Remove all uses of `--dart2js-batch`.
* Enable batch mode for dart2js by default.
* Rename `--noBatch` to `--no-batch`.
* Make `--no-batch` affect dart2js configurations.

Change-Id: I33bdb5cfe8a82ccfc6ce9e43843f1b7a34ff1fbf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217006
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2021-10-19 13:49:02 +00:00
Johnni Winther 0cbaee4c30 [cfe] Pass reference for lowered static late fields
Fixes fuzz test of static_field_lowering/opt_in

Change-Id: Ia0199e0cf3471a9b100e5f442ccfaad2930d94bd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217187
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-10-19 12:32:57 +00:00
Johnni Winther c206ec38ce [cfe] Pass ReferenceFromIndex to value class transformation
This fixes fuzz testing for value_class/empty,
value_class/explicit_mixin, and value_class/value_mixin_error

Change-Id: Ia098b3ed5b8a028f1a28c5579fe5df11e5a92ff0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217185
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-10-19 10:02:38 +00:00
Johnni Winther a5de2458f6 [cfe] Use correct Name for lookup of private forwarding constructors
Fixes fuzz testing of general/issue46581 and general/issue46581/main

Change-Id: Idb03be55756dec0a861006484a457a6911fc9adf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217017
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-10-19 08:40:08 +00:00
Mayank Patke 70479beea5 [dart2js] Rename platform files.
This avoids terms like "NNBD" and "strong" in favor of sound/unsound
null safety.

Change-Id: I1c99bea7155f80bc6acf62f46c6f266a29ebf1a2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213406
Commit-Queue: Mayank Patke <fishythefish@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2021-10-15 21:40:08 +00:00
Chloe Stefantsova 43d91dd031 [cfe] Use expriment flag "named-arguments-anywhere"
Part of https://github.com/dart-lang/sdk/issues/47451.

Change-Id: I7befc385261f2489b79f6c90f1bb903b02a413a1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217001
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Chloe Stefantsova <dmitryas@google.com>
2021-10-15 10:20:03 +00:00
Johnni Winther 0e7d0f5205 [cfe] Move createLibraryBuilder methods to loaders
Change-Id: I912ab0494cc91a4a2b665a24a7d55362402542ff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216940
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2021-10-15 06:13:07 +00:00
Johnni Winther 2bbb5dc907 [cfe] Encapsulate Dill/SourceLoader.builders
Change-Id: Ie98b3a243932cebeb845adb1cbe6c2cab1e92e0e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216287
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-10-14 20:34:45 +00:00
Chloe Stefantsova 448e44191c Add "named-arguments-anywhere" experiment flag
Part of https://github.com/dart-lang/sdk/issues/47451

Change-Id: I049519061d132eb681cc3aa67b1dea5d296e540e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216801
Commit-Queue: Chloe Stefantsova <dmitryas@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2021-10-14 14:16:52 +00:00
Chloe Stefantsova cfa5d6cdcb Add "enhanced-enums" experiment flag
Part of https://github.com/dart-lang/sdk/issues/47453.

Change-Id: I6d1fdc4bc170354985a9d216b13ad8f153717adf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216662
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Chloe Stefantsova <dmitryas@google.com>
2021-10-14 12:19:42 +00:00
Chloe Stefantsova 24fb189bc3 [cfe] Don't unalias constructor calls prematurely
Closes https://github.com/dart-lang/sdk/issues/47339.

Bug: https://github.com/dart-lang/sdk/issues/47339
Change-Id: I5fa7bf330676c92b5a074478319d1d537d1a0e9f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216185
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Chloe Stefantsova <dmitryas@google.com>
2021-10-13 13:33:36 +00:00
Johnni Winther 56490f9776 [cfe] Add Procedure.signatureType
The added field holds the interface signature type for a Procedure when
this is different from the class signature type (implied by the function
parameters and return type). This is needed for forwarding semi stubs
when its declared type is different from the called super member.

Closes https://github.com/dart-lang/sdk/issues/47072

TEST=pkg/front_end/testcases/general/implement_semi_stub.dart and more

Change-Id: I4a7cdc9d564fb0a59e7b06e83646b5410d8d82f5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216420
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Chloe Stefantsova <dmitryas@google.com>
2021-10-13 11:31:16 +00:00
Clement Skau 998d5f5a9b [vm/ffi] Adds FFI transform FfiNative instance methods.
- Allows FfiNative annotation to be attached to non-static
  methods of classes.
- Transforms non-static instance methods to static, adding
  wrappers with the receiver as an extra, implicit first paramters.
- Transform all parameters and arguments to Pointer if the object
  being passed supports it (i.e. extends NativeFieldWrapperClass1).
- Adds compile time errors for cases where the FfiNative annotation
  doesn't align with the annotated function. Taking into account
  implicit receivers and converted Pointers.
- Adds complimentary Analyzer checks for the above errors as well.
- Adds tests for the transforms, compile time errors and analyzer
  changes.

TEST=Adds new tests for instance methods, analyzer changes.

Change-Id: Idf54430acf2728a650008333b149b254941290ad
Cq-Do-Not-Cancel-Tryjobs: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213773
Commit-Queue: Clement Skau <cskau@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
2021-10-12 10:58:44 +00:00
Chloe Stefantsova d83e78c7a3 [cfe] Account for bounds changes in override substitution
Closes https://github.com/dart-lang/sdk/issues/47311.

Bug: https://github.com/dart-lang/sdk/issues/47311
Change-Id: I0ef3245f5a69951c323dc4a592e2c8ce194f59f3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215763
Commit-Queue: Chloe Stefantsova <dmitryas@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2021-10-12 09:46:25 +00:00
Sam Rawlins 228e1062ee Move front_end's libraries.json parser to _fe_analyzer_shared
Bug: https://github.com/dart-lang/sdk/issues/35081
Change-Id: Idd1c68a871ace37e45970e5452a59fd655445fd3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216100
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-10-11 17:59:43 +00:00
Johnni Winther 9603871cfd [cfe] Report error on 'new' used invalidly as selector
Part of https://github.com/dart-lang/sdk/issues/46232

Closes #47075

Change-Id: I6aece2236d6f45ec50bda3622b133c16761dd990
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215764
Reviewed-by: Chloe Stefantsova <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-10-07 13:24:33 +00:00
Chloe Stefantsova ca9e1e9801 [cfe] Retain parenthesized expressions until inference
Closes https://github.com/dart-lang/sdk/issues/47338.

Bug: https://github.com/dart-lang/sdk/issues/47338
Change-Id: I9520699286864919948e1400ad430a7c64681d50
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215549
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Chloe Stefantsova <dmitryas@google.com>
2021-10-07 10:52:02 +00:00
Johnni Winther 3171c7cc0e [cfe] Remove UnresolvedType
All NamedTypeBuilder objects from user code contain the needed file uri
and char offset.

Change-Id: Ia067c5ef740967302aa207eaf2d46fc2f75c1c8f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215600
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-10-06 07:39:34 +00:00
Johnni Winther c8cf6d6bba [cfe] Fix reference lookup for external extension fields
Change-Id: Ibd540d6b4aa56ee15f50e39184b420eca427845d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215551
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-10-05 15:16:20 +00:00
Johnni Winther 74fd108a69 [cfe] Handle nullable function types in explicit instantiation
Part of https://github.com/dart-lang/sdk/issues/46232

Change-Id: I390dc15a253cf0b335ed41bf945bbab2a3b2bdcc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215545
Reviewed-by: Chloe Stefantsova <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-10-05 13:01:41 +00:00
Johnni Winther cf1591f935 [cfe] Refactor detection of instance type variable access in static context
NamedTypeBuilder is now created with a state that determines whether it
can validly be resolved to an instance type variable.

Change-Id: I1e7f5f8e05a5f68ec18a063476b6cda291a1aca8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/214643
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2021-10-05 11:58:04 +00:00
Johnni Winther 3aaea30f10 [cfe] Pass references to lowered tear-offs
TEST=existing

Change-Id: I7e2625f87b357ceec45ec2664f7444af38ec0cf1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215402
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2021-10-05 09:20:41 +00:00
Johnni Winther 5574b1e59f [cfe] Support implicit tear off in explicit instantiation
Part of https://github.com/dart-lang/sdk/issues/46232

Change-Id: I578ae9d78dd71da40630a3d6da75c4344876944b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215021
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Chloe Stefantsova <dmitryas@google.com>
2021-10-04 14:35:30 +00:00
Johnni Winther 81839ddcc1 [cfe] Generate tear off lowering for named mixin application constructors
Closes #47313

Change-Id: I41f822cdc026214b538e5bcf562b51a065e50904
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215200
Reviewed-by: Chloe Stefantsova <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-10-04 13:55:37 +00:00
Paul Berry b2c2acee09 Adjust front end nomenclature for error messages.
This change updates the classes Message, MessageCode, Template,
LocatedMessage, and FormattedMessage so that they uniformly refer to
error message text using the terminology `problemMessage` and to
correction suggestions using the terminology `correctionMessage`.
This brings them into alignment with the names we've decided to use to
unify the structure of front_end and analyzer, and makes them match
the names used in the anlayzer and front end's `messages.yaml` files.

Change-Id: Idcbb7ccfff6bb4e99ca22a3ef3c19d83880cf3c7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215154
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2021-10-04 13:32:46 +00:00
Johnni Winther b6b81ebad1 [cfe] Setup correct scope for builder outline expressions on extension fields
Closes https://github.com/dart-lang/sdk/issues/47345

Change-Id: I3a666fde4d6dd802e6101ccbd55dff11c0179fba
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215401
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-10-04 12:14:57 +00:00
Chloe Stefantsova fcd684e7d1 [cfe] Allow named arguments anywhere by the CFE
Change-Id: I36ecafe821fe328bd27cb40dafca78ad0bf5dd81
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/214803
Commit-Queue: Chloe Stefantsova <dmitryas@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2021-10-04 11:57:41 +00:00
Johnni Winther e2a689bafd [cfe] Split Dill/SourceLoader and Dill/KernelTarget
This moves all implementation code from Loader and TargetImplementation
down to the concrete subclasses, Dill/SourceLoader and Dill/KernelTarget,
respectively, and removes all unneeded code. Since TargetImplementation
is now only an interface, it replaces the role of its supertype Target.

Change-Id: I8a556ac5bc559432dbd19a6a48151469a2cb0238
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/214020
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2021-10-04 07:36:38 +00:00
Johnni Winther 5b7968346d [kernel] Add Field.fieldReference
This adds a third reference to Field declaration, so that we know have
three references, one for each use case:

1) fieldReference used for initialization; in FieldInitializer and as
   the key in the InstanceConstant.fieldValues map.
2) getterReference used for reading; in InstanceGet, StaticGet and
   SuperPropertyGet
3) setterReference used for writing; in InstanceSet, StaticSet and
   SuperPropertySet

TEST=existing

Change-Id: I223f130e808e7f19a831c1fe5e3a4725d1bcdc3b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/203770
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2021-09-24 12:01:08 +00:00
Riley Porter dc4d16fc1b Use Extension Member data instead of desugar api.
Swap to finding the mapping of Procedure to ExtensionMemberDescriptor
data, instead of using the front_end desugar api for extension
member kind, name, and isStatic information.

Change-Id: I4bca55e8f1d3044def420060ddecc75600452a11
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/214305
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Srujan Gaddam <srujzs@google.com>
2021-09-24 01:41:48 +00:00
Johnni Winther 2fa89236d7 [cfe] Handle potentially constant types in instantiations
Part of https://github.com/dart-lang/sdk/issues/46232

Closes #47154

Change-Id: I71fe16d26facf29bdae1b98971c4ccfe18f95e80
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213772
Reviewed-by: Chloe Stefantsova <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-09-23 09:04:12 +00:00
Stephen Adams f1e6092dd8 [dart2js] More shared_messages.dart cleanup
- Remove references to deleted file.
- Remove message that is unreachable in kernel.

Change-Id: I5fe772a3a6fbd00b31d085f10c47d63778a64217
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/214071
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2021-09-22 19:20:54 +00:00
Johnni Winther 6c4b75237a [kernel] Rename isFieldFormal to isInitializingFormal
+ update ast-to-text, including previous renames of covariant

TEST=existing

Change-Id: Ia29847cba791096ccd9c6c383a1b633a6150cd94
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/214042
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Chloe Stefantsova <dmitryas@google.com>
2021-09-22 15:56:07 +00:00
Lasse R.H. Nielsen 18f37dd8f3 Add extension name getter on Enum.
We use an extension getter instead of an instance getter because
it doesn't conflict with any potential existing or future enums
which want an element named `name`.
Keeping the namespace for enum elements open is a priority.
We currently only reserve `index` and `values`.

BUG: https://github.com/dart-lang/language/issues/1511

Fixes language issue #1511, which is a long-standing request,
and should replace a number of alternative implementations
which are based on parsing the `toString()`.


This version has two fields on the shared superclass, the index
and private name, and has a separate `toString` for each `enum` class
which hard-codes that enum's class name.

An earlier version had both `"name"` and `"ClassName.name"` as fields
to be able to reuse the same `toString` method on all enum classes,
but that cost too much for JS compiled code.
Even having just `ClassName.` as a field and then combining inside
`toString` requires more code to create the enum instances.
Instead this version hardcodes the `ClassName.` string once
in the `toString` method, which means each enum class has its own
toString (which can *potentially* be tree-shaken then.)

This still tree-shakes slightly worse than the previous implementation
where every enum class had its own `index` and `_name` fields
independent of each other, which could then be tree-shaken independently.
However, the `index` was already made an interface member with the
addition of the `Enum` interface, so code which accesses `.index`
on something of the `Enum` supertype could prevent tree-shaking of
all enum classes' `index` fields.
Likewise any general access to the "name" of an enum would necessarily
do the same for the name.
This CL makes up for some of that by sharing more implementation
between enum classes.

DartVM AOT CodeSize impact: ~0.15% regression on gallery (little less on big g3 app)

TEST= New tests added to enum_test.dart

Change-Id: Id25334e6c987f470f558de3c141d0e3ff542b020
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/210480
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2021-09-22 14:20:16 +00:00
Chloe Stefantsova 684e8cf9f7 [cfe] Distinguish between call-site access kind in shown members
Change-Id: Ie893e1b9ef46ccfb3a86393cec4342845af49f2a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213765
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Chloe Stefantsova <dmitryas@google.com>
2021-09-22 10:13:37 +00:00
Sam Rawlins 9f0c408376 Remove redundant imports from front_end
Very often there were two imports of the same URI, one of which also
had a `show` combinator. I opted to remove the other one.

Bug: https://github.com/dart-lang/sdk/issues/44569
Change-Id: I1263c892f94f0645fda6dee371dfc1fcddcd2344
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213846
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-09-20 15:33:43 +00:00
Johnni Winther 3fd4283295 [cfe] Remove exports from internal libraries
Change-Id: Ief854e97f5cd3c8a04137ec6682f8193946abcac
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213770
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-09-20 08:28:00 +00:00
Jens Johansen 211ad9acb1 [CFE] Don't mark procedures as async when not using await
This CL removes async markers where await wasn't used.

In a few cases this also meant the ability to make the procedure not
return a future at all.

Also - at least on the VM with my benchmark run on my PC - returning
new Future.value(whatever) in a non-async procedure is faster than
returning whatever in an async procedure.

TEST=CI and existing tests.

Change-Id: I4ba888313c87de76bb0ca02c19eb1ab45f168a85
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213480
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2021-09-17 11:56:29 +00:00