Commit Graph

113680 Commits

Author SHA1 Message Date
dependabot[bot] 7d126dc14f Bump the github-actions group with 2 updates
Closes https://github.com/dart-lang/sdk/pull/63499

GitOrigin-RevId: deb858dd6b7bf379639970a18312fa476c51bdc1
Change-Id: I21296af424f6648c183084454c7e24b4706ceb36
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508480
Reviewed-by: Alexander Thomas <athom@google.com>
2026-06-10 05:07:48 -07:00
Kilian Schulte dd4f983cee fix location tracking transformer for use in flutter
Closes https://github.com/dart-lang/sdk/pull/63551

GitOrigin-RevId: a14cbbd88c605d193e2a1b744727765c45d38278
Change-Id: Ied6c2fc4ee3b5343c6ab8e38080542d667175f4d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510160
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2026-06-10 04:15:37 -07:00
Martin Kustermann 034b90af5d [dart2wasm] Allow using experimental dart:ffi in deferred modules
The experimental `dart:ffi` support predates deferred loading
implementation. Any use of FFI features would lazily import `ffi.memory`
into the (fixed coded) main module.

This CL now lazily imports the `ffi.memory` module into all modules that
operate on the memory.

=> This will now allow a flutter app that is compiled with dart2wasm
   in deferred loading mode to possibly defer parts of flutter
   engine code that uses FFI into deferred modules.

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

Change-Id: Idf821ce2dd92c36ac1be9dae24307516a1ae86d9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510760
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2026-06-10 02:34:44 -07:00
Martin Kustermann c5f9583eb3 [dart2wasm] Roll binaryen to new version
This brings the `(@binaryen.inline <>)` annotation support.

Change-Id: I2fbafd23aeee5d6843a470b8f887e7dc2514447c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510700
Reviewed-by: Slava Egorov <vegorov@google.com>
2026-06-10 02:23:19 -07:00
Jens Johansen abd32d5449 [analyzer] Fix _OverlayFile.writeAsBytesSync
Change-Id: I3b4d7ad2b7a781c49abebef307a44dd9b3381b37
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510361
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2026-06-10 01:08:18 -07:00
Johnni Winther fa2e23b83c [cfe][InternalNodes] Remove unused precise messages
These messages where never used. This was revealed through the separation of Variable and InternalVariable.

Change-Id: I96d337f941d300cc5437c9fa5c9341abe4889176
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510380
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2026-06-10 00:27:50 -07:00
Jens Johansen 26e4018188 [parser] Rename _reportInvalidConstantPatternOperator -> _checkForInvalidConstantPatternOperator
Follow-up to https://dart-review.googlesource.com/c/sdk/+/510320.

Change-Id: I90fcf18fbaf63600c40409ca420030e749180242
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510360
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2026-06-09 23:51:55 -07:00
Nate Biggs 92ae8b61ec [dart2wasm] Fix switch statements that include a Type expression case.
'canInvokeTypeEquality' was assuming that if a single case was a Type expression, then type equality should be used for the whole switch statement. This is incorrect because if a single case is a type expression but the rest are, for example, ints (as in the fixed test) then the int cases should be compared with identical while only the type expression should be compared with ==.

More importantly, the expected type of the case expression constants should be top type rather than the Type type. Top type is the union of Type and the other case type.

Switches that only include Type expressions will now use "top" type as well but in general switching on a Type expression is an antipattern we shouldn't optimize for. And the impact of not specializing the switch type to Type should be very minimal.

Fixes: https://github.com/dart-lang/sdk/issues/63476
Change-Id: Ib96172f157d8cf3093199e5127d4835e7b25011c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509920
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Nate Biggs <natebiggs@google.com>
2026-06-09 20:39:04 -07:00
Nate Biggs 6282b35c4c [dart2js] Fix labeled jump target resolution in SSA builder
When generating SSA jump instructions (HContinue and HBreak) for AST break statements, ensure that we only select labels from the target's label list that are explicitly marked as valid continue (isContinueTarget) or break (isBreakTarget) targets.

Previously, handler.labels.first was selected indiscriminately if non-empty, which caused unlabeled continue statements inside loops that had an outer break label to incorrectly generate labeled continue jumps targeting the break label.

Fixes: https://github.com/dart-lang/sdk/issues/63456
Change-Id: Ic497776141a192edb0930f4585cdaae2feecb3d5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510280
Commit-Queue: Nate Biggs <natebiggs@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2026-06-09 19:23:06 -07:00
dart-autoroll@skia-public.iam.gserviceaccount.com 31b6c9f0d2 Roll Fuchsia SDK from 32.20260601.5.1 to 32.20260604.3.1
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-sdk-dart-sdk
Please CC fuchsia-3p-engprod@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Fuchsia SDK: https://bugs.fuchsia.dev/p/fuchsia/issues/list
To file a bug in Dart SDK: https://github.com/dart-lang/sdk/issues

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: luci.dart.try:vm-fuchsia-release-x64-try;luci.dart.try:vm-fuchsia-release-arm64-try
Change-Id: I1297129ceeb6f6b5b5d68f10983b8bc4d2d7274a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509420
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
2026-06-09 18:02:42 -07:00
dart-autoroll@skia-public.iam.gserviceaccount.com aa6489ca91 Roll BoringSSL from 047c29fe2c3e to 60553ee001ee (29 revisions)
https://boringssl.googlesource.com/boringssl.git/+log/047c29fe2c3e..60553ee001ee

2026-06-04 davidben@google.com draft-ietf-dnsop-svcb-https was also published
2026-06-04 davidben@google.com draft-ietf-lamps-dilithium-certificates is now RFC 9881
2026-06-03 davidben@google.com Restore the libcrypto C++ runtime dependency, but with a build flag
2026-06-03 davidben@google.com Fix error_depth in the name constraints common name check
2026-06-03 chlily@google.com Add default SSL options to SSL_OP_ALL
2026-06-03 rpolzer@google.com Unroll the ML-DSA NTT outer loops.
2026-06-03 rpolzer@google.com In SSL_reset_early_data_reject, clear out unreported bytes written.
2026-06-02 davidben@google.com Update Wycheproof test vectors
2026-06-02 andreser@google.com Replace most of P-256 assembly code with C
2026-06-02 rpolzer@google.com For AES-GCM-SIV, also require PCLMUL instruction set.
2026-06-02 rpolzer@google.com Add CMS_LIB to kLibraryNames.
2026-06-02 chlily@google.com Documentation: Change |...| to `...` for code references in comments 9/N
2026-06-02 rpolzer@google.com Remove the size limits for AES-EAX.
2026-06-02 chlily@google.com Documentation: Change |...| to `...` for code references in comments 15/15
2026-06-02 chlily@google.com Documentation: Change |...| to `...` for code references in comments 14/N
2026-06-02 chlily@google.com Documentation: Change |...| to `...` for code references in comments 12/N
2026-06-01 davidben@google.com Remove unreachable checks in builtin BIO callbacks
2026-06-01 davidben@google.com Convert built-in BIOs to write_ex
2026-06-01 davidben@google.com Switch some BIO_write calls to BIO_write_ex
2026-06-01 chlily@google.com Documentation: Change |...| to `...` for code references in comments 13/N
2026-06-01 davidben@google.com Take another pass at EVP_MD_CTX and EVP_CIPHER_CTX documentation
2026-06-01 mattm@google.com Implement plants-04 landmark relative MTC verification.
2026-06-01 davidben@google.com Implement BIO_write_ex
2026-06-01 davidben@google.com Narrow BIO_read and BIO_write error values
2026-06-01 davidben@google.com Fix BIOTest.SocketConnect on platforms where loopback is synchronous
2026-06-01 davidben@google.com Fix non-blocking connect completion check in BIO.
2026-06-01 davidben@google.com Fix EVP_MD_CTX reuse across EVP_PKEY algorithms
2026-06-01 davidben@google.com Use C++ destructors in by_dir.cc
2026-06-01 davidben@google.com Clean up by_dir's get_cert_by_subject function

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/boringssl-dart-sdk
Please CC dart-engprod@google.com,dart-vm-gardener@rotations.google.com,dart-vm-team@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in BoringSSL: https://crbug.com/boringssl/new
To file a bug in Dart SDK: https://github.com/dart-lang/sdk/issues

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Tbr: dart-vm-gardener@rotations.google.com
Change-Id: Iae122815779b6085963c2b4c78bde9f7c5f37ff0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509421
Reviewed-by: Alexander Aprelev <aam@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2026-06-09 17:52:05 -07:00
Konstantin Shcheglov f8d286d4d2 CQ. Migrate from assertInvalidTestCode() to resolveTestCodeWithDiagnostics() and remove it.
Change-Id: Id1306cef4434ee4f61fa3df8a33aa4009698203f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510189
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2026-06-09 12:34:43 -07:00
Ryan Macnak b5eb9af663 [build] Fix RBE fallback on pkg, ddc and dyn bots.
Also fix --check-clean. `ninja target -t commands` reports the commands for the default target, fix to use `ninja -t commands target` instead.

Change-Id: Ice179290e75b083a96abadb7540ca960eafcc982
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510440
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2026-06-09 12:27:23 -07:00
Konstantin Shcheglov a7c437e4d8 CQ. Remove SdkConstraintVerifierTest, assertErrorsInCode()
Change-Id: I563d661c70faa6c3cedf64df442f06aa688864c2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510186
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2026-06-09 12:26:39 -07:00
Brian Wilkerson 9f47e3186d Add an unnecessary_primary_constructor_body lint
The lint will fire even when there is a comment in the body, such as
```dart
class C() {
  this { /* comment */ }
}
```

I think this is the right behavior because I can't think of any useful
comment that wouldn't be better somewhere else, but let me know if you
disagree.

This doesn't yet have a fix, but it should.

Change-Id: Ia5ffa6b06c75a6a7400ec32a9d22209c08a9c73d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510401
Reviewed-by: Keerti Parthasarathy <keertip@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2026-06-09 11:39:04 -07:00
Kallen Tu 2a3c26806f [migrate] Allow additional force enabled codes in BulkFixProcessor.
This CL allows the BulkFixProcessor to handle additional force-enabled
codes that may not be enabled in the existing analysis options of the
current project.

Change-Id: I346a1fba8a25d7ebc6a2d95828796e7f7c0ff52c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509681
Commit-Queue: Kallen Tu <kallentu@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2026-06-09 11:29:45 -07:00
Konstantin Shcheglov fa78f9f947 Augment. Deprecate MethodDeclaration.isAbstract, add isComplete to ConstructorDeclaration, FunctionDeclaration, MethodDeclaration.
Change-Id: I3d5c884870ef183f54e59cd0a5c735373cbe71a2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509900
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2026-06-09 11:28:23 -07:00
Varad Raj Agrawal 6a678d1f49 Quick fixes that create constructors use new-style syntax when primary_constructors is enabled
Closes https://github.com/dart-lang/sdk/pull/63534

GitOrigin-RevId: 345471bc33c002bbca9cea9c6626a05f481f70e3
Change-Id: If8d533ab0bbb4e6dff51a4256101fb8cb0490fb4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509680
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2026-06-09 10:57:01 -07:00
Nate Bosch 68c13971f6 Bump test to 2adf8b546d878cb7f6534653d0a821ac7e1f5753
Changes:
```
> git log --format="%C(auto) %h %s" 14f99ec..2adf8b5
 https://dart.googlesource.com/test.git/+/2adf8b54 [test] Add compiler `dart test -c cli` to run hooks (2660)
 https://dart.googlesource.com/test.git/+/e3df43cf Disable chrome throttling options (2666)
 https://dart.googlesource.com/test.git/+/f7a6b627 Recompile host.dart with 3.12.1 SDK (2645)
 https://dart.googlesource.com/test.git/+/d270d51a Handle objects with empty toString (2662)
 https://dart.googlesource.com/test.git/+/5a897b2f Resolve process leak in test compiler (2664)
 https://dart.googlesource.com/test.git/+/74a9aaf3 Close receive port in VM platform on null isolate (2665)
 https://dart.googlesource.com/test.git/+/5d1c8bd0 Bump the github-actions group with 3 updates (2659)
 https://dart.googlesource.com/test.git/+/1ba4b68f Fix unawaited_return_in_try_block (2654)
 https://dart.googlesource.com/test.git/+/fe9e6586 Revert "Disallow exiting from VM tests (2640)" (2652)
 https://dart.googlesource.com/test.git/+/27e640ad Use dev tools URL when debugging (2283)
 https://dart.googlesource.com/test.git/+/44a8e78f Fix output for multiline clauses in failures (2646)
 https://dart.googlesource.com/test.git/+/64081690 Indent string diffs lines (2648)
 https://dart.googlesource.com/test.git/+/2da01787 Shorten failure message for NaN/not NaN (2649)
 https://dart.googlesource.com/test.git/+/376443b9 Handle async conditions in mayEmit (2647)
 https://dart.googlesource.com/test.git/+/b3f92fa9 More consistent unexpected error formatting (2644)
 https://dart.googlesource.com/test.git/+/86fcce24 Disallow exiting from VM tests (2640)
 https://dart.googlesource.com/test.git/+/a5374bf2 Reformat with latest dev SDK (2641)

```

Diff: https://dart.googlesource.com/test.git/+/14f99ecdcb74778654d936ce26c70798a3b6649f..2adf8b546d878cb7f6534653d0a821ac7e1f5753/
Change-Id: Ic404fc96a8e02ecfb217d9904e684063edc5ff75
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510141
Commit-Queue: Jake Macdonald <jakemac@google.com>
Auto-Submit: Nate Bosch <nbosch@google.com>
Reviewed-by: Jake Macdonald <jakemac@google.com>
2026-06-09 10:49:05 -07:00
Konstantin Shcheglov e15ccdd9be CQ. Remove not useful PubSuggestionCodeTest, tweak for encoding test.
Change-Id: I08f5da69db285395566e71463e4e357ea4227ac2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510201
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2026-06-09 10:48:56 -07:00
Alexander Markov e043a7453e [vm] Cleanup unused UntaggedPcDescriptors::kBSSRelocation
TEST=ci

Change-Id: Ifd926f3bd3630b80c9659dbe60892c3c229bf838
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510400
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2026-06-09 10:29:39 -07:00
Konstantin Shcheglov ea50ec6486 API. Deprecate FormalParameterElement.formalParameters and typeParameters.
For clients outside the library the useful property in
`FormalParameterElement.type`, not *how* this type was specified
syntactically: `void f(int a<T>())` vs. `void f(int Function<T>() a)`.
This way, we have to think about these type parameters and formal
parameters only locally, like for example about local variables - they
exist, enclosed in a fragment, but don't leak outside into the element
model of a method.

I found this while working on the augmentations: that formal parameters
have to have the same types in the introductory declaration, and in
augmentations.

Change-Id: Ie4e92ebd0cd0204c4ba80200a9497e95859cc3e7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509522
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2026-06-09 09:51:14 -07:00
Konstantin Shcheglov 55dcbad483 Augment. Hide augmentation recovery elements from signatures
Do not expose recovery type parameter and formal parameter elements
through the public element model. Recovery fragments are still needed
internally to link augmentation chains with mismatched shapes, but they
should not change the effective arity or callable signature of the
declaration being augmented.

Filter fragments marked as originating from another enclosing fragment
when computing executable formal parameters, executable type parameters,
and instance type parameters. This keeps function types, class arity,
and constructor or method signatures based on the real declaration
rather than on synthetic recovery elements introduced for invalid
augmentations.

Change-Id: I455a8a18bc07cdae30006754e069d687659aab1d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510182
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2026-06-09 09:34:12 -07:00
Konstantin Shcheglov b6785856fe CQ. Remove stale tests.
These are either ancient syntax, or are about Object and actually not
checked, and there is no reason to check.

Change-Id: I5869aeea4012c6dee0bc158337eecf02e479c365
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510200
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2026-06-09 09:31:01 -07:00
Ryan Macnak 0b1c0dc9c5 [build] Enable racing mode for Dart actions.
Put local actions in a common pool, especially
 - Assembler (many run for boringssl)
 - Linker (high memory use)
 - Dart (high memory use)

This should limit the number of concurrent local actions to the number of harts available, avoiding the racing actions triggering out-of-memory failures.

Change-Id: Ifa168012d73472a3db349acc36545dd176385bbc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510190
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
2026-06-09 09:23:06 -07:00
Ryan Macnak 354a997abe [build] Remove the platform/full SDK distinction.
This was originally for Flutter, but Flutter now uses a prebuilt Dart SDK.

Change-Id: I134048ccbfea2670759f47490cc1c7f9eff12460
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510240
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2026-06-09 09:15:56 -07:00
Kevin Moore ab0f7d309c [build] Extract C++-only warning flags in GN compiler configs
Several C++-only warning suppressions were incorrectly placed in the
shared 'default_warning_flags' list instead of
'default_warning_flags_cc'. This caused these flags (such as
-Wno-microsoft-unqualified-friend, -Wno-microsoft-cast)
to be applied to pure C targets (like zlib and BoringSSL assembly).

This CL moves these C++-only warnings to 'default_warning_flags_cc',
ensuring they are only applied to C++ compilation units. This improves
compile database accuracy, prevents IDE/clangd from surfacing phantom
diagnostics on C files, and makes the build configuration explicit and
robust.

Change-Id: I117de03496164d7e2e39b5deab7754fd85452923
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510181
Commit-Queue: Kevin Moore <kevmoo@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Auto-Submit: Kevin Moore <kevmoo@google.com>
2026-06-09 08:58:58 -07:00
Tess Strickland 7d8b5becb4 [vm,dyn_modules] Remove CompilerState use from CallMarshaller.
The CallMarshaller is used not only from the compiler, but also
from the FfiCall runtime entry used by the interpreter. Since it
only has one use of the thread's CompilerState, looking up the
TypedData class, move the storage of that class from the compiler
state to the object store and remove this dependency.

TEST=ffi/address_of_array_generated_test
     ffi/address_of_cast_test
     fii/address_of_struct_generated_test
     ffi/address_of_typeddata_generated_test

Fixes: https://github.com/dart-lang/sdk/issues/61913
Cq-Include-Trybots: luci.dart.try:vm-dyn-linux-debug-x64-try
Change-Id: Ia4fc5d9ecef370aa9476b998e37cc4ae94ee447f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/498563
Commit-Queue: Tess Strickland <sstrickl@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2026-06-09 07:54:09 -07:00
Robert Nystrom 061e843207 Roll dart_style into the SDK.
This doesn't roll the latest dart_style main branch in because that has some style changes and there are other style changes still in flight. I want to roll all of those in all in one batch later.

Instead, this brings in a single commit whose parent is the current dart_style commit in the SDK. That commit contains only a fix for a crash bug when an analysis_options.yaml file contains an include pointing to a non-existent file. See:

https://github.com/dart-lang/dart_style/pull/1855

This gets the main branch in sync with the stable branch which has a cherry-pick with that same fix.

Change-Id: I97e3adec1c93175d372bb972989fe6a2860cf31f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510222
Auto-Submit: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2026-06-09 07:07:06 -07:00
Johnni Winther 1109842c55 [cfe][PrimaryConstructor] Avoid leak of default value token
This changes to handling of default value tokens on primary constructor fields to eager read the token of the fragment. This avoid leaking the token when field type inference isn't needed for the declared field.

Change-Id: I1cd7a2de7020bd403b843e1f0a456ab26a98e5ff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510342
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2026-06-09 06:20:23 -07:00
Jens Johansen ba90c83168 [parser] Mark a few methods for inlining
Some recent changes to the parser looked like they should have cost
basically nothing but ended up costing a little bit anyway.
This CL marks the new functions for inlining recovering at least some of
the cost.

Change-Id: I599d557eb25bee892c8975d794618e837fec0caa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510320
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2026-06-09 05:41:32 -07:00
Johnni Winther ac477b9233 [cfe][InternalNodes] Add more internal nodes
This adds internal nodes for VariableStatement, VariableDeclaration, Let, and ForStatement. The prepares for separating Variable from InternalVariable and allows for the removal of Variable.asVariableDeclaration.

Change-Id: Ib0593f64b3d22ce99c187ab4af32c8dc8cbea6e9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509980
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2026-06-09 05:27:48 -07:00
Jens Johansen 90d89a0ca1 [CFE] Remove unused enableUnscheduledExperiments
Change-Id: I9d3b498ec0b4ae631cc2240dfad589166eae0c4b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510340
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2026-06-09 05:25:53 -07:00
Daco Harkes bf82bf3d38 [dartdev] Fix test package resolution
Change-Id: I6d0d9fd29dd7eafcbf7d451b3f91ca66cc8c7fe7
Cq-Include-Trybots: luci.dart.try:pkg-linux-debug-try,pkg-linux-release-arm64-try,pkg-linux-release-try,pkg-mac-release-arm64-try,pkg-mac-release-try,pkg-win-release-arm64-try,pkg-win-release-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510300
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2026-06-09 01:26:43 -07:00
Jens Johansen daadde51d8 [CFE] Remove unused compiler option 'declaredVariables'
Change-Id: I78cf7fafa64310e600e864b17b64c4aa3faa7aaa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509981
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2026-06-09 00:10:30 -07:00
Alexander Aprelev 9306b8796c [infra/android] Automatically reboot android devices stuck in fastboot mode.
Should help with performing dart gardening duty, taking care of the bots stuck in fastboot mode manually. Like this: https://ci.chromium.org/ui/p/dart/builders/ci.sandbox/vm-aot-android-release-arm_x64/7497/overview.

Change-Id: I20f142190a2987c4b76f85ad27f5adfaa047f5a2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510191
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2026-06-08 20:52:24 -07:00
Sam Rawlins 6fd091c444 analyzer: Avoid two-step constructors for TypedLiteralResolver
Change-Id: I13d9c5ef3b49d1112e1eb2c503b9d571fa458da0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510183
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Auto-Submit: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2026-06-08 17:29:20 -07:00
Ryan Macnak 37609ccba2 [build] Fix cross builds.
Change-Id: Ia2b8faa9023086ce5d7387178ac9451ade939230
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510220
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2026-06-08 16:11:42 -07:00
Keerti Parthasarathy 9bbfa6ffd9 [primary contructors] Fix use_declaring_parameters to ignore fields with doc comments.
Closes https://github.com/dart-lang/sdk/issues/63518

Change-Id: I51fb1a07a758e3d94a212537bc5560e66c483982
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509181
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2026-06-08 15:13:54 -07:00
Sam Rawlins d7d118f75e linter: Fix bug in no_dynamic_casts w.r.t. Object? for-loop variable
I discovered this bug while migrating Flutter to the new lint rule.

Change-Id: I7944adff58299907e50bf0b2af3b992ec25721ff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510142
Auto-Submit: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2026-06-08 15:04:42 -07:00
Ryan Macnak 52f1a4ef54 [build] Too many deps!
- Break false dependency of non-VM platforms on VM platform
 - Break false dependency of bootstrap gen_kernel on VM platform
 - Extend precompile_tools to gen_kernel steps
 - Rename intermediate kernel files so JIT versus AOT is visible in ninjatracing

TEST=ci
Change-Id: I07011abe8303597af61d2b8c73e788b661482cc0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510060
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2026-06-08 14:27:51 -07:00
Jake Macdonald fb2c85c973 udpate analyzer to allow the latest package_config version
Change-Id: Ib73a378a30ab297ecc45218a57cfedfa62c75f8b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510120
Reviewed-by: Nate Bosch <nbosch@google.com>
Auto-Submit: Jake Macdonald <jakemac@google.com>
2026-06-08 14:26:58 -07:00
Ryan Macnak 7b62c1be57 Revert "Remove the JIT entitlement from gen_snapshot."
This reverts commit 8dd61ee24b.

Reason for revert: gen_snapshot still flakily setting executable permissions?

Original change's description:
> Remove the JIT entitlement from gen_snapshot.
>
> gen_snapshot doesn't need the instructions it's generating to actually be executable.
>
> TEST=ci
> Change-Id: I6c542d4a07f6e6659feb22f77aca3819d7d26c78
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509060
> Reviewed-by: Tess Strickland <sstrickl@google.com>
> Commit-Queue: Ryan Macnak <rmacnak@google.com>

No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I91ed61d719a3d9eefa66b32b535079a07c92ab59
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510080
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2026-06-08 14:05:04 -07:00
Konstantin Shcheglov 3a85655f91 CQ. Migrate more tests from assertErrorsInCode().
Move another batch of analyzer tests away from offset-based
assertErrorsInCode() expectations. Put expected diagnostics and context
messages directly in the source snippets instead, including multi-file
cases that need context markers in supporting files.

This keeps each diagnostic expectation next to the code that produces
it, making the tests easier to read and less fragile when surrounding
code changes. It also removes now-unused diagnostic imports and helper
parameters that were only needed for explicit ExpectedDiagnostic lists.

Update the diagnostic expectation utilities so stripping generated
marker lines preserves the retained source lines correctly.

Change-Id: Ibe3890b9ff5e2b2e102e13e5ecc243bdf80c5f4b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509682
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2026-06-08 13:47:41 -07:00
Ryan Macnak 9b8d908379 Speed up RISCV QEMU testing.
- Skip/delete some large tests.
 - Reduce some large tests.
 - Explicitly choose the CPU features, which seems to be disabling something expensive.

TEST=ci
Bug: https://github.com/dart-lang/sdk/issues/63465
Cq-Include-Trybots: luci.dart.try:vm-ffi-qemu-linux-release-arm-try,vm-ffi-qemu-linux-release-riscv64-try
Change-Id: Ifa591d6600da3e20c9de4d123906a7747029df7e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509200
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2026-06-08 13:27:27 -07:00
Martin Kustermann 9edafc75f7 [dart2wasm] Disallow inlining of static field initializers
Static field initializers are only run once and as such are cold code.
They should never be inlined into hot code that accesses the static
field.

Though right now `wasm-opt` will inline the static field initializers
e.g. if there's only one use of a static field (as it makes size a bit
smaller if we avoid the extra wasm function). That has the problem that
it may inline cold code into hot code. That hot code in return then gets
big and may not be allowed to be inlined into it's caller.

One can instruct binaryen to only inline functions with one caller up to
some size by passing `--one-caller-inline-max-function-size` (see [0]).
Though that can regress size.

So instead we specifically mark the function we know are cold to not be
inlined, namely static field initializer functions above a certain size.

This changes performance of a benchmark from [1] from
  cascadeUnhoisted: 390000 us
to
  cascadeUnhoisted: 138000 us

NOTE: This will cause some size regressions for e.g. e main module by
0.4-0.5% - but seems to be the right thing to do.

[0] https://github.com/WebAssembly/binaryen/issues/8619
[1] https://github.com/dart-lang/sdk/issues/63484

Change-Id: I626b8cd879a804aef638901ede190f74276d8e8b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509960
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2026-06-08 12:21:42 -07:00
Ryan Macnak 8189bdd83b Reduce build sets for most bots.
The front-end, dart2js, dart2wasm, ddc and analyzer bots do not need the cross-compilation or sanitizer tools, nor the VM test binaries.

Change-Id: I2f5a1041b1b29c562bace7210830e9904a31c397
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510040
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2026-06-08 11:07:41 -07:00
Ryan Macnak 5955f2b806 [build] Skip unnecessary read when using incbin.
Change-Id: I7eb56ec2a29ecaf4f4ce578f9666436969cbe15d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/510041
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
2026-06-08 11:05:48 -07:00
Alexander Markov 28d7984e31 [modular_aot] Use primary constructors
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I7476ec7e66edd958c66e31dabcd6ab8d818594e5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509640
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2026-06-08 10:32:03 -07:00
Ryan Macnak fd7d13ed8c [build] Use ad-hoc code signing by default for non-sanitizer builds.
Cq-Include-Trybots: luci.dart.try:vm-asan-mac-release-arm64-try,vm-tsan-mac-release-arm64-try,vm-ubsan-mac-release-arm64-try
Change-Id: Ie2eb29167cafd265dcee8467ac6f4f4a694d2356
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509062
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2026-06-08 09:13:26 -07:00