static final _emptyList can't be used in isolategroup mutator code, so the code that uses lists didn't work in that setting neither.
Having natively-implemented _emptyList getter fixes this issue.
TEST=run_isolate_group_run_test
Change-Id: Iad422231829d1dc0994863632521f50f2f8247ab
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/443146
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
This only includes the imports from the first fragment. We'll eventually
need to decide what to do about imports in part files, preferably before
that feature has shipped, but the lack of support won't impact users
today.
Change-Id: Ia38149f619dc22085ed02a90892e0af13eb188dd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/443143
Reviewed-by: Jake Macdonald <jakemac@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
* OptionsValidator was defined in the `src/plugin/` directory (the only
file in there), which I found confusing. Moved it to
`src/analysis_options/`.
* OptionsFileValidator, and a few related classes, were defined in the
`src/task/` (the last file in there!), so I moved it to the same
place.
There is more to tidy in here, but this is a simple file-move.
Change-Id: I8f4c5cc0ae4e76eb6c17249457c50ab69c82590d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/443147
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
On X64, executables are not required to be signed, and we only sign the
appended executable if the original dartaotruntime used for appending
was signed.
TEST=pkg/dartdev/test/commands/compile_test
Issue: https://github.com/dart-lang/sdk/issues/55455
Change-Id: Iec8f866423a76b93bb3a3cb9befce009bbdc78ef
Cq-Include-Trybots: luci.dart.try:pkg-mac-release-arm64-try,pkg-mac-release-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/443100
Commit-Queue: Tess Strickland <sstrickl@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
This reverts commit b65435017d
This reverts commit 2254755d65
The switch-case optimizations introduced a bug that is surfaced when
running the dart2wasm self-compilation test in [0]. With that test
running
```
% python3 tools/test.py -n unittest-mac pkg/dart2wasm/test/self_compile_test
```
will fail with
```
...
Exception in StaticInvocation at file:///FakeSdkRoot/sdk/lib/_internal/wasm/lib/boxed_double.dart:346:29
Bad state: Unhandled WasmArray intrinsic: StaticIntrinsic.wasmArrayIndex
at module0.Error._throwWithCurrentStackTrace (wasm://wasm/module0-0121906a:wasm-function[160]:0xd0d76)
at module0.AstCodeGenerator.visitStaticInvocation (checked entry) (wasm://wasm/module0-0121906a:wasm-function[6304]:0x1668e5)
at module0._TreeVisitor1Default&Object&TreeVisitor1DefaultMixin&ExpressionVisitor1DefaultMixin.visitStaticInvocation (checked entry) (wasm://wasm/module0-0121906a:wasm-function[6306]:0x167b61)
at module0.StaticInvocation.accept1 (wasm://wasm/module0-0121906a:wasm-function[6297]:0x165f5f)
at module0.AstCodeGenerator.translateExpression (wasm://wasm/module0-0121906a:wasm-function[1742]:0xfcd1b)
at module0.AstCodeGenerator.visitEqualsCall (checked entry) (wasm://wasm/module0-0121906a:wasm-function[6960]:0x1777e4)
at module0.EqualsCall.accept1 (wasm://wasm/module0-0121906a:wasm-function[6944]:0x1773b4)
at module0.AstCodeGenerator.translateExpression (wasm://wasm/module0-0121906a:wasm-function[1742]:0xfcd1b)
/Users/kustermann/src/dart-sdk/sdk/pkg/dart2wasm/bin/run_wasm.js:346: [object WebAssembly.Exception]
```
The switch-case in the intrinsifier seems to be miscompiled.
Change-Id: I3bfe8887fa133573379c32d52e15769a4e6db43e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/443082
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Ömer Ağacan <omersa@google.com>
Now that more of dartdev (e.g., generating kernel) uses dartaotruntime,
modifying the built dartaotruntime with a adhoc non-linker-signed
signature causes this test and other tests following it to fail.
Instead, remove this test and just check that the binary generated
by `dart compile exe` is signed on MacOS.
TEST=pkg/dartdev/test/commands/compile_test
Fixes: https://github.com/dart-lang/sdk/issues/55455
Change-Id: If8f645aeccac617a550db7740343327ca8cd1e4a
Cq-Include-Trybots: luci.dart.try:pkg-linux-release-try,pkg-mac-release-arm64-try,pkg-mac-release-try,pkg-win-release-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/442840
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Auto-Submit: Tess Strickland <sstrickl@google.com>
Commit-Queue: Tess Strickland <sstrickl@google.com>
This splits handleEndingBinaryExpression into two new listeners handleDotAccess for `.` and `?.` access and handleCascadeAccess for `..` and `?..`, both with an explicit `isNullAware` flag.
This is a step towards handling `a.b` different from `a + b` in the parser such that listeners don't have to create a value for `b` the works in both use cases; in the first is just a named operation performed on the receiver, whereas in the second case it is a full expression in its own right.
Change-Id: I04ec80401f8f2dbb8dffa86543c434e530b18cf7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/442821
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
These are from `_Array.iterator` whereas the previous ones was from,
iirc, `List.iterator`.
* 7.41mb Import.finalizeImports
* 1.13mb FindTypeVisitor.visitInterfaceType
* 856.39kb new NamedTypeBuilderImpl
* 815.92kb BodyBuilder.createSuperParametersAsArguments
(values from uprobe)
When compiling the CFE with the CFE I get this:
```
msec task-clock:u: -5.6347% +/- 0.5257% (-321.96 +/- 30.04) (5713.89 -> 5391.92)
page-faults:u: 5.9842% +/- 0.0970% (6310.26 +/- 102.33) (105449.48 -> 111759.74)
cycles:u: -6.0829% +/- 0.5338% (-1447602857.06 +/- 127036484.81) (23797839542.02 -> 22350236684.96)
instructions:u: -4.9550% +/- 0.0008% (-1364113249.40 +/- 214444.14) (27529935457.16 -> 26165822207.76)
branch-misses:u: -5.7909% +/- 2.2880% (-5395643.76 +/- 2131857.44) (93173948.12 -> 87778304.36)
seconds time elapsed: -5.6275% +/- 0.5257% (-0.32 +/- 0.03) (5.72 -> 5.40)
seconds user: -6.0582% +/- 0.5861% (-0.33 +/- 0.03) (5.47 -> 5.13)
Scavenge( new space) goes from 63 to 61
Evacuate(store buffer) goes from 2 to 3
MarkSweep( old space) goes from 1 to 0
```
As before the changes here are mostly "bogus" and likely caused by the
GC being weird, see also
https://dart-review.googlesource.com/c/sdk/+/438722 and
https://dart-review.googlesource.com/c/sdk/+/438681.
It does seem to consistently change the number of new space GCs though
(65 -> 63 -> (here) 61).
Change-Id: I18ef712394c1d98b8ed15c7fe6c4ac32fa9bc2e3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/438682
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Fixed an incorrect name `_forRecordLiterals` in
`RuleVisitorRegistryImpl`.
Refactored existing generators to reduce code duplication, extracted
_Node class and made helper extensions.
For context I am currently reading Crafting Interpreters by Robert
Nystrom and was inspired to use the code generation shown in the book.
Change-Id: Ia26aa2f697b98dae89903648758c2ca47d1823ec
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/442561
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
These were producing false positives that could mislead users.
We will cherrypick this to beta and then reimplement these in a different way for the next Dart release.
Change-Id: I495135bbed6ca0b194ea84aaef3ec8e571fc2e98
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/442960
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Commit-Queue: Nate Biggs <natebiggs@google.com>
This type argument was never used. Removing it should make it easier
to make changes to the front end error message logic (and associated
code generator), which I intend to do as part of a long term plan to
make the analyzer and front end error reporting systems more
consistent, and eventually merge them.
Change-Id: I994cd2a74c5fd77df192f6a1f2dde46ba8a31883
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/442723
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
New names better represent what these classes are.
The `element_printer.dart` utility is updated to produce the old `*Member` names for the new `Substituted*ElementImpl` classes. This is a temporary measure to avoid updating a large number of test expectations in this CL. The expectations will be updated and the temporary code in `element_printer.dart` will be removed in a follow-up CL.
Change-Id: Ic203600d6c1a0b686323df8bd2f8f086769309ae
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/442721
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
First, the character `2` has no meaning anymore.
Second, saying "Internal" better represents what this interface is: an
internal interface, with more precise types and additional methods.
Move InternalConstructorElement into 'with' in ConstructorElementImpl.
Change-Id: I22b04b4b6e786c50429359a656a8d6ca5e2fb492
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/442701
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>