Commit Graph

113512 Commits

Author SHA1 Message Date
Sam Rawlins 7dab27015c DAS plugins: Respect analysis roots set in LSP
Fixes https://github.com/dart-lang/sdk/issues/62686

This is the remainder of the work from https://dart-review.googlesource.com/c/sdk/+/505041 for LSP. With this change, "workspace folders" from LSP are sent as analysis roots to new analyzer plugins.

Change-Id: Ic79503532fca1291097128ac0085c09bbeabbc4b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508168
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2026-06-01 14:01:53 -07:00
Daco Harkes fa6bfb196b [dartdev] dart build cli root package
`dart:test` compiles a wrapper file that it places _outside_ all
packages defined in the `package_config.json`.

Technically, the `package_config.json` is only used to resolve the
imports that are _not_ the entry-points. So, it should be valid to
pass an entry-point outside the `package_config.json`.

However, we do need to specify what root-package to use for running
hooks. So, add a CLI option for this.

See discussion on https://github.com/dart-lang/test/pull/2660

Change-Id: I381a61490e69eb5757126b017f07779917837851
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-win-release-arm64-try,pkg-mac-release-try,pkg-win-release-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508122
Reviewed-by: Ben Konyi <bkonyi@google.com>
Reviewed-by: Jake Macdonald <jakemac@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2026-06-01 13:31:35 -07:00
Ryan Macnak e59fa2e4a2 [vm] Remove dead read-only heap code.
This was part of the VM isolate.

TEST=ci
Change-Id: I831e984025c5d4d17607e8a36222bdef70bf66b8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508240
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
2026-06-01 13:19:29 -07:00
Danny Tuppeny 336ad52179 [analysis_server] Fix handling of default values in unanswered Interactive Forms
This fixes a bug where an interactive form where all fields have defaults would be considered complete immediately, so we'd never present the fields to the client.

It also includes some minor refactoring extracted from a future CL that implements command/resolve and supports Interactive Forms in refactors in an attempt to reduce the size of that change to aid reviewing.

Change-Id: I176fe25dbb0b610d69617fa04562b0d3ce571642
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508220
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2026-06-01 12:43:19 -07:00
Ryan Macnak 5610ce7922 [build] Reduce dartdev bloat in the "runtime" target.
The dartdev JIT snapshot is not needed on not-IA32, where the AOT snapshot is used instead.

Change-Id: I8ee0f15dde1532e81c75013e4f2b1f56456ca146
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508161
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2026-06-01 12:15:56 -07:00
Ryan Macnak a9335cfa23 [build] Inform GN of copy_tree's destination directory.
This will make GN notice conflicting copy_tree destinations.

It may also fix a race when two copy_tree's with a common parent directory create that parent directory.

Change-Id: I1783ea170f0390d4026123ed43c00cd15eb0b1c5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508241
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2026-06-01 12:11:40 -07:00
Sam Rawlins 5c2007b086 DAS: refactor notification manager to not create local functions each time we check if a file is analyzed
Just a refactor to simplify code, and save local-function allocations
for each file.

Change-Id: Ic47212f493a44a2aec072ce999c4421e9960344e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508201
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Auto-Submit: Samuel Rawlins <srawlins@google.com>
2026-06-01 12:00:46 -07:00
dart-autoroll@skia-public.iam.gserviceaccount.com a651c3c539 Roll Fuchsia SDK from 32.20260522.6.1 to 32.20260526.7.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: I2283a92deb945763abb8aa295f4e9e5de2dd6f37
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/506504
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
2026-06-01 11:58:38 -07:00
Konstantin Shcheglov 915898d89e CQ. Replace many resolveTestCode() with resolveTestCodeWithDiagnostics() invocations.
Change-Id: I9581a1d09e5a901c9250f1868490b2bd029d63ea
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507800
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2026-06-01 11:51:16 -07:00
Danny Tuppeny c0b424f28f [analysis_server] Update interactive forms for latest spec changes
This updates the interactive forms classes to reflect recent changes.

Previously, we would only send back the outstanding fields to the client, and it would only provide answers for the same.

Now, the server will always send all fields to the client, and the client will always provide all answers. Answers are looked up IDs (a new field on `FormField`, and `FormAnswer` which wraps the answer) rather than rely on indexes.

Fields can also now be required.

Change-Id: If4aa1f9a18fa873e83cb0ea1fd74c2e42cd2fa1f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508103
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2026-06-01 11:46:51 -07:00
dart-autoroll@skia-public.iam.gserviceaccount.com 3566b46888 Roll gn from e44942b445d9 to 3357c4f51b1a
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/gn-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 gn: https://bugs.chromium.org/p/gn/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:dart-sdk-linux-try;luci.dart.try:dart-sdk-linux-arm64-try;luci.dart.try:dart-sdk-mac-try;luci.dart.try:dart-sdk-mac-arm64-try;luci.dart.try:dart-sdk-win-try
Change-Id: I0c88f0ec1dbd1a6396615c9fe2d45272dcee54c3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/506541
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2026-06-01 11:02:01 -07:00
Brian Wilkerson ff974a38b5 Fix a bug in convertDefaultToPrimaryConstructor
The convertDefaultToPrimaryConstructor fix wasn't accounting for the
presence of type parameters when choosing where to insert the empty
parentheses. This fixes that.

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

Change-Id: Ibec4f5531840bf0c0aafa4436654201ef8a8a6ec
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508202
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Auto-Submit: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2026-06-01 11:00:32 -07:00
Ryan Macnak 2bf2ff5682 [infra] Reduce Fuchsia build set.
Change-Id: Iba59af7e031bafc375669e0ba3cc84081476e6e1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507720
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2026-06-01 10:54:02 -07:00
Ryan Macnak 12a0b7994c Inform the Fuchsia GN SDK about the Fuchsia toolchain's version of readelf.
Avoids the use of the system's readelf, which emits warning about newer DWARF features it doesn't know about.

Change-Id: I6f6be5670bba591bfa1a5fa0bf9c53da28020b08
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508165
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
2026-06-01 10:53:56 -07:00
Tess Strickland 7b5f8df929 [vm,dyn_modules] Fix the starting file offset for closure functions.
For closures generated from both FunctionDeclarations and
FunctionExpressions, the starting file offset of the generated closure
function should be the file offset of the node itself, not the file
offset of the FunctionNode.

(This matches the logic in KernelLoader::LoadClosureFunction.)

TEST=pkg/vm_service/test/coverage_extension_methods_test

Cq-Include-Trybots: luci.dart.try:vm-dyn-linux-debug-x64-try
Change-Id: I25a0cd0aa6505e122a215237ca6ef7e8edb031af
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507424
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Tess Strickland <sstrickl@google.com>
2026-06-01 10:35:58 -07:00
Tess Strickland 1276c57803 [vm,dyn_modules] Generate RecordCoverage for specialized bytecode.
Some instance calls involving numbers in bytecode are converted to
specialized bytecode instead of generating an InstanceCall instruction.
When emitting RecordCoverage instructions, add them prior to these
specialized bytecodes as well.

TEST=ci

Cq-Include-Trybots: luci.dart.try:vm-dyn-linux-debug-x64-try
Change-Id: Ic1ab6be4123766d7ce583966dfde393a5df77579
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507421
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2026-06-01 10:35:58 -07:00
Tess Strickland 92a8cf7347 [vm,dyn_modules] Record coverage for instantiated instance calls.
TEST=ci

Cq-Include-Trybots: luci.dart.try:vm-dyn-linux-debug-x64-try
Change-Id: Id8d84f131120b66984e9c9410b1f3aeeb4b41d83
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507441
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2026-06-01 10:35:58 -07:00
Tess Strickland 34c4e4799d [vm,dyn_modules] Ensure coverage arrays during source reporting.
The original iteration of adding coverage arrays originally eagerly
allocated coverage arrays for bytecode methods with recorded coverage.

Now that these coverage arrays are lazily allocated,
Function::GetCoverageArray() needs to ensure that the appropriate
coverage array has been allocated.  Otherwise, no misses within the
function are recorded in cases where no RecordCoverage instruction in
the method has yet been executed.

TEST=vm/cc/SourceReport_Coverage_UnusedClass_ForceCompile
     pkg/vm_service/test/branch_coverage_test
     pkg/vm_service/test/coverage_async_test
     pkg/vm_service/test/coverage_closure_call_after_optimization_test
     pkg/vm_service/test/coverage_closure_call_test
     pkg/vm_service/test/coverage_instance_call_after_optimization_test
     pkg/vm_service/test/coverage_static_call_after_optimization_test

Cq-Include-Trybots: luci.dart.try:vm-dyn-linux-debug-x64-try
Change-Id: Iff4ddaf583d0f9583bc415142bdee52c046a6712
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507440
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2026-06-01 10:35:58 -07:00
Paul Berry ca78143775 Merge OWNERS_FOUNDATION into OWNERS_LANGUAGE.
These two groups were the same (except for Kallen, who was
accidentally not included in OWNERS_FOUNDATION and should have been),
so we decided to merge them. Internally, the group is called the "Dart
Language and Core Libraries" team, so `OWNERS_LANGUAGE` seems like the
one to keep.

Change-Id: I606ba5828f482c04841c2e995a0066ad6a6a6964
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508166
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2026-06-01 09:59:56 -07:00
Konstantin Shcheglov 771a30f853 CQ. Extract _IndexTextBuilder.
Change-Id: I0119c2c312dd666fc42654e04c9dd445e8fb900e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507740
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2026-06-01 09:56:51 -07:00
Konstantin Shcheglov bf02a527ce Augment. Update ConstructorBodyTest.
Change-Id: Ic1bed2f8ac28b480e28ffa0bb3dccc4f26857f1f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507721
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2026-06-01 09:56:25 -07:00
Alexander Markov 5dd8edc9ff [modular_aot] Support enclosing function type arguments
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I89fb302bc3f7b1e6e28ac80dddb756c6b2447c8f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/505421
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2026-06-01 09:56:02 -07:00
Konstantin Shcheglov 55b35f58b8 Augment. Remove 4 tests from SubtypeTest.
Type operations are based on the elements, augmentations do not matter
here.

Change-Id: I7f71afbf6aa9c77f43af4a82077dab474f8e7af9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507620
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2026-06-01 09:55:25 -07:00
Konstantin Shcheglov f2b4ba88f6 Augment. Remove most TODO-skipped tests in resolution, migrate 3.
These tests were testing that elements declared in augmentations
can be target. But resolution is based on the element model, and we
already have tests that show how we aggregate declatations into th
element model.

Migrated 3 tests that show that `this` and `super` prefixes work
inside augmentations.

Change-Id: I36d7b1044a856e64ed92990f0e4a732f2b41a4b0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507281
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2026-06-01 09:54:44 -07:00
Konstantin Shcheglov b9d3c903a0 Patterns. Report invalidConstantPatternBinary for 'case a.b + c.d'.
Bug: https://github.com/dart-lang/sdk/issues/63356
Change-Id: Id26a0cebf5aa0320e1d3fc62ca630fe8e7716241
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507580
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2026-06-01 09:53:09 -07:00
Ryan Macnak d62a57b4f8 [build] Remove deprecated copy_trees template.
Change-Id: Ic9c4233f022cfa0aa7708ff9cf777e8c6faf741b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508163
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2026-06-01 09:48:16 -07:00
Ben Konyi 1e7b080ed7 fix(dds): mark server connection tests as slow in status file
Mark server_connection_api_test and server_connection_vm_service_test as Slow, Pass in pkg/pkg.status to prevent false-positive timeouts on slower/loaded builders.

TAG=agy
CONV=2fddba4d-da91-4fcd-923a-faee680c5b4e

Change-Id: Ic4fa73242c3c64d517294d9a8fb1fec5e0423380
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507660
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
Auto-Submit: Ben Konyi <bkonyi@google.com>
2026-06-01 09:35:32 -07:00
Ryan Macnak 7d6c973ed9 [build] Remove the last absolute paths from RBE builds.
Extend --check-clean (enabled on bots) to verify build commands don't include absolute paths.

The non-RBE GCC and MSVC builds still have absolute paths. GCC doesn't have -ffile-compilation-dir so it uses -fdebug-prefix-map, which is not fixable. The MSVC build has absolute path in the toolchain wrappers, which might be fixable.

TEST=ci
Change-Id: I3b984aaab7aefa7ff527f0a039ca42281224a09d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/506505
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2026-06-01 08:46:47 -07:00
dart-autoroll@skia-public.iam.gserviceaccount.com bd304d04bc Roll BoringSSL from 5ee9407bc28d to f449f7206f62 (7 revisions)
https://boringssl.googlesource.com/boringssl.git/+log/5ee9407bc28d..f449f7206f62

2026-05-26 davidben@google.com Reject legacy_cookie in DTLS 1.3
2026-05-26 agl@chromium.org Switch away from being an entropy-injected FIPS module.
2026-05-26 rpolzer@google.com Tag new BoringSSL release for Bazel.
2026-05-26 rpolzer@google.com RC2: fix RC2 heap overflow with _huge_ key lengths.
2026-05-26 rpolzer@google.com DSA_check_signature: on failure, set *out_valid = 0.
2026-05-22 mattm@google.com add CBS_get_u48
2026-05-22 davidben@google.com Bump BORINGSSL_API_VERSION

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: I801a9c0cbeb641edca4683ffa098ecf0852ab418
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/506540
Reviewed-by: Alexander Aprelev <aam@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2026-06-01 08:43:13 -07:00
Ryan Macnak 7e5b075680 Reland "[standalone] Remove the fallback root certificates."
Leave in hooks for the google3 build.

TEST=ci
Change-Id: Ib5768d27fcdbf3d4963da3d8dd142bea5fae10ef
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/506420
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2026-06-01 08:32:26 -07:00
dart-autoroll@skia-public.iam.gserviceaccount.com 742b999750 Roll Fuchsia GN SDK from SEfYx3xgueX3aFAY3... to oOAcFhkoE2_-Sy67z...
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-gn-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 GN 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: I731187527bfd5339a00b02f3db60b5cfdcbc0a1c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507640
Reviewed-by: Alexander Aprelev <aam@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2026-06-01 08:06:09 -07:00
Jonas Finnemann Jensen 50cb703dee Fix hotReload for Flutter in clientside dartpad backend
R=goderbauer
Change-Id: Id704c270ba851b987d84b76c652eb8a1b7ceeafb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508102
Commit-Queue: Michael Goderbauer <goderbauer@google.com>
Reviewed-by: Michael Goderbauer <goderbauer@google.com>
Auto-Submit: Jonas Jensen <jonasfj@google.com>
Commit-Queue: Jonas Jensen <jonasfj@google.com>
2026-06-01 07:44:23 -07:00
Danny Tuppeny 0bb9fa32a5 [analysis_server] Fix isolate plugin test on Windows
Fixes:
  Expected: ['/pkg1']
  Actual: ['C:\\pkg1']
   Which: at location [0] is 'C:\\pkg1' instead of '/pkg1'
Change-Id: I6bd2abaa77eea7193794ece126201958e11639db
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508040
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2026-06-01 07:24:26 -07:00
Ryan Macnak fc750ac8e0 [build] Remove unsigned executable memory permissions from the AOT runtime on Mac.
Snapshots are now generally signed Mach-O dylibs loaded by dlopen, instead of ELF files mapped executable by the VM's loader.

TEST=ci
Change-Id: Id19877bed0bd0282b320f070904a848b0c076a54
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/505200
Reviewed-by: Tess Strickland <sstrickl@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2026-06-01 07:21:29 -07:00
Paul Berry 94b953305a [front_end] Adapt parser_ast_indexer to handle new constructor syntax.
Previously, when the code in `parser_ast_indexer.dart` encountered a
constructor, it assumed that it could figure out the constructor's
name by looking at the last identifier (before parameters) of the
signature, and prepending the class name with a `.`. This had the side
effect that "unnamed" constructors were given a name of
`ClassName.ClassName`.

With the new constructor syntax, this doesn't work anymore, because
for unnamed constructors the signature looks like
`new(...parameters...)` or `factory(...parameters...)`, so there are
no identifiers, leading to a crash.

At the moment we don't see the crash because this code is only used to
analyze files within the front end and kernel, which don't use the new
constructor syntax yet. But it blocks us from being able to migrate
the front end and kernel to use the new constructor syntax.

This CL fixes the problem, unblocking the migration.

Change-Id: Ibf78b77d736ab2ec812945401ffacf3f6a6a6964
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507261
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2026-06-01 07:13:26 -07:00
Johnni Winther 5059d9e842 [cfe][InternalNodes] Add AuxiliaryPattern
This allows for creating internal pattern nodes in the CFE.

Change-Id: Ifad3c29eb7dd329ecd902c7b43fcff58ad862bcc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508000
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
2026-06-01 05:17:24 -07:00
Jonas Finnemann Jensen a185d6355b Use only -O2 for dart2wasm when compiling dartpad_worker
Because -O4 might not have correct semantics.

Change-Id: Icaa3ccd1bd219e0c94e7217086c923924061fe9f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507420
Reviewed-by: Sigurd Meldgaard <sigurdm@google.com>
Commit-Queue: Jonas Jensen <jonasfj@google.com>
2026-06-01 02:02:26 -07:00
Johnni Winther 0eb19fdba1 [cfe][PrimaryConstructors] Process parameter annotations
This CL ensures the processing of parameter annotations on primary constructors.

Since primary constructors with constructor body declarations are built in two parts, the constructor is not finished when the primary constructor is built, but instead delayed to when the primary constructor body declaration is built. This conditional code path accidentally left parameter annotations unprocessed.

Fixes b/517220569

Change-Id: I8ec82283dc60a743c22cb03c041d2975e95941bc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507980
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2026-06-01 01:57:46 -07:00
Loïc Sharma 283b44e9ce Add missing space in help text for --print-dtd
Closes https://github.com/dart-lang/sdk/pull/63487

GitOrigin-RevId: c42190fcef7ca7712f35698836ecf8ed41840fa7
Change-Id: If355719e9741383666c6d046b392e2c2b4b75b96
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507820
Commit-Queue: Slava Egorov <vegorov@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
2026-06-01 01:03:15 -07:00
Alexander Aprelev 0894f4d219 [gardening] Fix dartpad build rules so they work in flutter repo.
Fixes broken dart->flutter roll https://github.com/flutter/flutter/pull/187339

TEST=flutter ci

Change-Id: If6d19ef4b52f859a67178b6ae7c903b21c9106b9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507860
Reviewed-by: Jonas Jensen <jonasfj@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2026-05-31 06:40:23 -07:00
Brian Wilkerson 4af407d11e Fixes the handling of linked edit groups in ChangeBuilder
NOTE: Amost all of this code was written by AI, but has all been
reviewed by me. I did a tiny amount of cleanup that was faster to do
myself than to ask the agent to do it. That doesn't mean that I've
caught all of the AI's bugs, but I did try to ensure that test coverage
was complete enough to also catch problems.

This fixes a bug in the way the `ChangeBuilder` handled linked edit
groups. The bug resulted from the fact that the offsets of the linked
edit groups was adjusted at the time each edit location was added.
Doing that meant that they weren't re-adjusted when new non-group edits
were added at a lower offset, making it possible for the edits to have
the wrong offsets when they were sent to the client.

The solution is to not adjust them when they are created, but to
adjust them during `finalize` when other offsets are adjusted. At that
point we have full knowledge of all of the edits so we can get it right.

Doing that required adding a reference to the each edit in the file
edit builder (because only the edits in the same file can require that
an adjustment be made).

My hope is that with this change in place I can complete the arc of
work to update all of our refactors to use the `ChangeBuilder` APIs to
build the edits.

Change-Id: I59ddb0dee1f9dbb15bdcc38a84ddc07acefe6262
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507622
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2026-05-29 17:04:24 -07:00
Brian Wilkerson 8a5987013f Add a new fix for representationFieldModifier
This add a fix to add a type annotation in place of the `var` keyword.

The assist to add a type annotation was already being offered, but it
didn't understand that it needed to also remove the keyword. The added
fix will do both, and, by being a fix, will appear higher in the list
of code actions that users see, along side the fix to remove the
keyword without adding a type annotation.

The fix to remove the keyword can be bulk applied, so I couldn't make
the new one also be bulk applicable. We might consider reversing the
status so that the default bulk fix behavior includes adding a type
annotation, but this CL doesn't do that.

Change-Id: I122221ef1e5119a76e1157a9a15cf1193135fc59
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507161
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2026-05-29 17:02:11 -07:00
Ben Konyi ad5133b373 [DDS] Fix server_connection_vm_service_test timeouts
In `server_connection_common.dart`, the `server removes clients that
disconnect from the API` test spawned its own Chrome instance using
`package:devtools_shared`'s `Chrome` class without isolated profiles or
essential headless flags.

This caused the test to hang or fail flakily in container environments
(like LUCI bots) and local environments: 1. Without
`--use-mock-keychain`, headless Chrome on macOS blocks on system
credential dialogs. 2. Without `--no-sandbox`, Chrome renderer processes
can crash in restricted container environments. 3. Without
`--user-data-dir`, Chrome uses the default system profile, which can
cause it to attach to an existing open Chrome instance instead of
starting a new one, meaning the process exits immediately and the test
cannot terminate it.

Fixed by directly using `package:browser_launcher`'s `Chrome` class in
the test and passing:
* `--user-data-dir` pointing to a unique temporary directory.
* `--no-first-run` and `--no-default-browser-check` to bypass welcome prompts.
* `--no-sandbox` and `--use-mock-keychain` where appropriate.

Also wrapped the test in `try-finally` to guarantee cleanup of the
temporary profile directory.

Change-Id: I6fbe5a280524b57c635ab11ef54fa07dba2794cf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507600
Reviewed-by: Alexander Aprelev <aam@google.com>
Auto-Submit: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2026-05-29 13:48:45 -07:00
Konstantin Shcheglov a3b11266ed Augment. Enable a few hierarchy tests, add more.
Change-Id: I24df92334408ee04f4fe638200561c63b4fd4ce7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507266
Reviewed-by: Paul Berry <paulberry@google.com>
2026-05-29 13:21:52 -07:00
Ben Konyi fa9895bdf6 [VM Service] Add service info file dumping and bind address support
Adds support for writing the active VM service connection URI to the file
specified by `--write-service-info-to-file` and updates native bindings
with the web server address on startups.

TAG=agy
CONV=ae3a29f5-e2c8-499c-b221-ff61e40f5f1f

Change-Id: Ice85fda098031ef4ba1cd1120a917137aae97105
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/505163
Auto-Submit: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
2026-05-29 13:19:00 -07:00
Ben Konyi ad7c6453a6 [VM Service] Fix DevFS stream PUT requests
Resolves issues in DevFS handling where individual stream file PUT
requests could result in flaky test failures on Windows.

TAG=agy
CONV=ae3a29f5-e2c8-499c-b221-ff61e40f5f1f

Change-Id: I55d12cc55f35d1d1ed36742d442a3d4bebad53bf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/505162
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Auto-Submit: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2026-05-29 13:18:35 -07:00
Ben Konyi 85da4dfd46 [VM Service] Fix Windows expression evaluation type crash in experimental service
Correctly define `kRootLibraryUri` constant and forward `rootLibraryUri`
to the resident frontend compiler.

TAG=agy
CONV=ae3a29f5-e2c8-499c-b221-ff61e40f5f1f

Change-Id: Ie4c87857744d9b32165ea7d0f8004d6d6c337886
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/505161
Auto-Submit: Ben Konyi <bkonyi@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2026-05-29 13:18:35 -07:00
Paul Berry d6889ba492 Migrate pkg/build_integration to new constructor decl syntax.
(Part of https://github.com/dart-lang/sdk/issues/63288)

This change migrates `pkg/build_integration` to use the new
constructor declaration syntax, described in
https://github.com/dart-lang/language/blob/main/accepted/future-releases/primary-constructors/feature-specification.md#abbreviations-of-in-body-constructor-declarations.

This change was performed in an automated fashion, by (a) bumping the
packages' SDK constraints to `3.13.0-0`, (b) enabling the lints
`unnecessary_type_name_in_constructor` and
`unnecessary_const_in_enum_constructor`, (c) fixing the resulting lint
failures using `dart fix`, and then (d) reformatting the affected
files.

To ease code review, I've reverted unrelated formatting changes.

Since this change requires bumping SDK constaints to `3.13.0-0`, it
was only performed on packages that are *not* published on
pub. (Packages that *are* published on pub should remain on lower
language versions until at least after the stable version of 3.13 is
released, so that we don't block users on the stable channel from
receiving updates to those packages.)

Change-Id: Ifb2c4ca31f14c3e94f7b756969e730bf6a6a6964
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/506023
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2026-05-29 13:06:59 -07:00
Paul Berry f6cfbde274 Reformat some files in pkg/build_integration.
This will avoid some merge conflicts in a follow-up CL I'm working on
that will enable the lints `unnecessary_type_name_in_constructor` and
`unnecessary_const_in_enum_constructor` (and will fix declarations
accordingly).

Change-Id: I26d8b58ac8f299dd08539b91d7b2bc786a6a6964
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/506022
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
2026-05-29 13:05:27 -07:00
Paul Berry faacc331de Make pkg/analysis_server/tool/spec/generate_files work on Linux
We have comments in some generated files suggesting that the user use
this script to regenerate them, but the script previously only worked
on Macs. This CL fixes the script so that it work with Linux too.

Change-Id: I4b42b843513247b16bbbcd0b7c85f82d6a6a6964
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/507540
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2026-05-29 13:04:18 -07:00