Commit graph

90721 commits

Author SHA1 Message Date
Nate Bosch 6f45c8534e Bump matcher to dc310d95663da10a90e7898cd4e322695f693d4f
Changes:
```
> git log --format="%C(auto) %h %s" c1a0704..dc310d9
 https://dart.googlesource.com/matcher.git/+/dc310d9 Export more APIs through the expect library (213)
 https://dart.googlesource.com/matcher.git/+/7538872 Make the arguments to `expect` dynamic again (212)
 https://dart.googlesource.com/matcher.git/+/52e232e Fix import and broken tests (211)
 https://dart.googlesource.com/matcher.git/+/985e4ef Improve mismatch description of `contains` (206)
 https://dart.googlesource.com/matcher.git/+/5bc765d Copy expect and async matchers from test package (210)

```

Diff: https://dart.googlesource.com/matcher.git/+/c1a07043de3da4968e1736fcde1c521802821859..dc310d95663da10a90e7898cd4e322695f693d4f/
Change-Id: I11b074e97c9c49ba46760da44a99f795523d3008
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289445
Commit-Queue: Kevin Moore <kevmoo@google.com>
Auto-Submit: Nate Bosch <nbosch@google.com>
Reviewed-by: Kevin Moore <kevmoo@google.com>
Commit-Queue: Nate Bosch <nbosch@google.com>
2023-03-17 19:44:30 +00:00
Daco Harkes 1755f89092 [vm/ffi] Add class modifiers
Adds class modifiers to `dart:ffi`.

Migrates all user-defined subclasses of `Struct`, `Union`, `Opaque`,
and `AbiSpecificInteger` to be `final class`es.

Does not remove the manual error checking, so some errors will show up
twice now in language version 3.0. In language version <3.0, only the
FFI-specific error will show up.

In a follow-up CL, we will try to make the language-errors to show up
also <3.0 so that we can remove the FFI-specific errors.

Examples of duplicated errors:
pkg/analyzer/test/src/diagnostics/subtype_of_ffi_class_test.dart

TEST=pkg/analyzer/test/ (for the analyzer)
TEST=pkg/front_end/testcases/ (for the CFE)
TEST=test/ffi/ (for the VM)

CoreLibraryReviewExempt: No need for dart2js to review.
Bug: https://github.com/dart-lang/sdk/issues/51683
Change-Id: I2964ceccb7db59fbdaf6be5319f5e4ec2dabe0f3
Cq-Include-Trybots: luci.dart.try:pkg-linux-debug-try,pkg-win-release-try,pkg-mac-release-try,vm-precomp-ffi-qemu-linux-release-riscv64-try,vm-precomp-ffi-qemu-linux-release-arm-try,vm-ffi-android-debug-arm64c-try,vm-ffi-android-debug-arm-try,vm-reload-rollback-linux-debug-x64-try,analyzer-analysis-server-linux-try,analyzer-linux-release-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289223
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Jackson Gardner <jacksongardner@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2023-03-17 19:29:41 +00:00
Mark Zhou 80c2b02bd0 [ddc] Adding a runtime flag for real deferred loading in DDC
Change-Id: If50f7437c827a32829f5093cb3a14cbc5e55f7a7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289340
Commit-Queue: Mark Zhou <markzipan@google.com>
Reviewed-by: Anna Gringauze <annagrin@google.com>
2023-03-17 18:04:48 +00:00
Jake Macdonald 2cec283bd0 update covariant setter test to test mixin class behavior also
Change-Id: I8f87f5d2d7745719462e0782176b04a595cdd5f6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289521
Auto-Submit: Jake Macdonald <jakemac@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Jake Macdonald <jakemac@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2023-03-17 17:38:49 +00:00
Ilya Yanok d190e16766 Fix handling of @Injectable functions
Recent changes that made migration tool more conservative affected
functions used in Angular's DI: functions annotated with `@Injectable`
must have non-nullable non-annotated arguments. Previously that
worked just because there was no reason to make them nullable.

Make such functions' arguments explicitly non-nullable.

Bug: b/250862403
Change-Id: I27207994b058ba845aafd7776d14380e8104e8f8
Tested: added a test
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289505
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Ilya Yanok <yanok@google.com>
2023-03-17 17:28:41 +00:00
Johnni Winther 7cc2553fa1 [_fe_shared_analyzer] Use real exhaustiveness checking algorithm
This changes the analyzer and CFE to use the real exhaustiveness
checking algorithm. The fallback algorithm is kept and will be
removed once we know that the real exhaustiveness algorithm sticks.

Change-Id: Ic9df92c1ca9f7dec4cbdfa138dc6ed39ef2d4df5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/288703
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2023-03-17 16:45:35 +00:00
Konstantin Shcheglov 771042f5ca Prepare to publish analyzer 5.8.0 and _fe_analyzer_shared 56.0.0
Change-Id: I09c65e9897fb8fe77c668fac8044da9b73b0f41a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289441
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-03-17 16:36:59 +00:00
Nicholas Shahan cf7d78cc2c [dart2js] Run modular steps with sound null safety
Update the dart2js and kernel worker steps themselves to run
with sound null safety. This is separate from the code being compiled
in the step which will be migrated in another change.

Change-Id: Idbaaeb255209e79bb34aa34aedeb020be097c1c5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289408
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Nate Biggs <natebiggs@google.com>
2023-03-17 16:26:10 +00:00
Ivan Inozemtsev 4c70caf4df [deps] rev http
http (805a147..74f9d3d):
  74f9d3d  2023-03-09  Brian Quinlan  Add conformances test that verify that the Client works in Isolates (#889)
  ee03604  2023-03-09  Brian Quinlan  Add a flag to allow the default Client to be tree shaken away. (#868)
  2039fb3  2023-03-09  Brian Quinlan  Fix a reference count race with forwarded delegates. (#888)

Change-Id: I56faf5cf41ad16f6a365db66265b02e66adbc59f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289502
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
Auto-Submit: Ivan Inozemtsev <iinozemtsev@google.com>
2023-03-17 16:25:08 +00:00
Jake Macdonald 3b06df241f Clean up a number of 2.19 opt outs in language tests.
This is less than half of them, will send some other chunks later.

Bug:51557
Change-Id: I4e80812a689fde99e23c34b6405aaf57cd431ce8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289261
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Jake Macdonald <jakemac@google.com>
2023-03-17 16:17:50 +00:00
Brian Quinlan e34165c543 Reland "[io] Improve the performance of the IOSink returned by openWrite by writing eagerly and accumulating small writes."
This is a reland of commit c2bdda63f5

Original change's description:
> [io] Improve the performance of the IOSink returned by `openWrite` by writing eagerly and accumulating small writes.
>
> Benchmarks (benchmarks/FileIOSink/dart/FileIOSink.dart):
>
>  @before:
>
>   FileIOSink.Add.ManySmall(RunTime): 2341597.0 us.
>   FileIOSink.Add.OneLarge(RunTime): 111.06925927974774 us.
>   FileIOSink.Add.AlternatingAddSize(RunTime): 105.65958788898234 us.
>
>  @after
>
>   FileIOSink.Add.ManySmall(RunTime): 5007.1125 us.
>   FileIOSink.Add.OneLarge(RunTime): 98.23492468475541 us.
>   FileIOSink.Add.AlternatingAddSize(RunTime): 91.77411527720551 us.
>
> So the relative performance changes are:
>
>  FileIOSink.Add.ManySmall(RunTime): 0.00213x (MUCH faster)
>  FileIOSink.Add.OneLarge(RunTime): 0.884x (slight faster - noise?)
>  FileIOSink.Add.AlternatingAddSize(RunTime): 0.868x (slightly faster - noise?)
>
> https://golem.corp.goog/Revision?repository=dart&revision=102771&patch=17842
>
> Change-Id: Ic73f33299a570096dd05f254982f556767559966
> Bug:https://github.com/dart-lang/sdk/issues/32874
> Tested: unit tests
> CoreLibraryReviewExempt: Performance-only fix for file writes in the VM.
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/285420
> Commit-Queue: Brian Quinlan <bquinlan@google.com>
> Reviewed-by: Alexander Aprelev <aam@google.com>

Bug: https://github.com/dart-lang/sdk/issues/32874
Change-Id: I758f3159e85c837d6ec4a0f3e470b519825ee142
Tested: unit tests
CoreLibraryReviewExempt: Performance-only fix for file writes in the VM.
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/288545
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Brian Quinlan <bquinlan@google.com>
Reviewed-by: William Hesse <whesse@google.com>
2023-03-17 16:13:19 +00:00
Ben Konyi dcd65d0122 [ Benchmarks ] Update SDKArtifactSizes benchmarks to include dart2wasm and DevTools
TEST=N/A

Change-Id: I8633762410c9df753f147b3010294ed56e82e6ee
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289520
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Sigurd Meldgaard <sigurdm@google.com>
2023-03-17 16:08:02 +00:00
Konstantin Shcheglov d362996c9c Issue 51758. Don't consider not ClassElement to be a supertype of a class type alias.
Bug: https://github.com/dart-lang/sdk/issues/51758
Change-Id: I9ffd2b1fc539a569d8ec89c6885359594dd54c0d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289403
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-03-17 15:53:38 +00:00
Ilya Yanok 43b74160e0 Fix crash when trying to do cast X to FutureOr<X>
Bug: b/273826476
Change-Id: Ifcaa5c936c87ea494658a547a7514e0fbd0c0b7f
Tested: added a test
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289504
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Ilya Yanok <yanok@google.com>
Commit-Queue: Ilya Yanok <yanok@google.com>
2023-03-17 15:36:34 +00:00
Modestas Valauskas 337d2cc8b1 [ANTLR] Move optional trailing question mark up.
Closes https://github.com/dart-lang/sdk/pull/51742

GitOrigin-RevId: 8aed1ba4ebbd14aa88a74f4f23464e2c24a10c38
Change-Id: I8184a2edc66acc79c51d3838b0849c4a414784fd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/288981
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
2023-03-17 11:33:59 +00:00
Sergey G. Grekhov 8912e03797 [co19] Roll co19 to e8141111c3315b0a9c151fcac0e14656dcfddac5
2023-03-16 sgrekhov22@gmail.com Fixes dart-lang/co19#1933. Generic function instantiation during pattern matching is a compile error (dart-lang/co19#1938)
2023-03-16 sgrekhov22@gmail.com Fixes dart-lang/co19#1939. Missed line added to variable_declaration_A04_t03.dart (dart-lang/co19#1943)
2023-03-16 sgrekhov22@gmail.com Fixes dart-lang/co19#1941. Typo fixed in type_inference_A26_t01.dart (dart-lang/co19#1942)
2023-03-16 sgrekhov22@gmail.com dart-lang/co19#1401. Matching tests for record and object patterns (dart-lang/co19#1934)
2023-03-15 sgrekhov22@gmail.com dart-lang/co19#1401. Matching tests for list pattern (dart-lang/co19#1920)
2023-03-14 sgrekhov22@gmail.com Fixes dart-lang/co19#1930. Make runtime type of collection not assignable to the tested pattern (dart-lang/co19#1936)
2023-03-14 sgrekhov22@gmail.com Fixes dart-lang/co19#1932. Fix compile-time error in matching_logical_and_A02_t02.dart (dart-lang/co19#1935)
2023-03-13 sgrekhov22@gmail.com Fixes dart-lang/co19#1896.Explicit type arguments added (dart-lang/co19#1926)
2023-03-13 sgrekhov22@gmail.com Fixes dart-lang/co19#1925. Missing type arguments added (dart-lang/co19#1927)

Change-Id: I8b10d553f666b96e0b0039a946b7ec821b230951
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289460
Reviewed-by: Alexander Thomas <athom@google.com>
2023-03-17 09:19:24 +00:00
Johnni Winther bf68f9320b [_fe_analyzer_shared] Improve exhaustiveness for cast pattern
This uses the context type when creating the space for a cast pattern
to include the implicitly covered subtypes in the space. This is done
when the context type is a sealed type which means that we can reason
about which of the subtypes of the sealed type that are implicitly
handled by the throw of the cast.

Change-Id: I3a4f14bf6ca82f59a2c2a3c27bb472a8f38c1613
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289222
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2023-03-17 08:10:53 +00:00
Nate Biggs 21737a6c2e [dart2js] Fix type variable detection for interfaces nested in records for RTI.
Change-Id: I9661498582eb170077eb3d58d8a84fab2e2d8bf6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289380
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Nate Biggs <natebiggs@google.com>
2023-03-17 03:30:14 +00:00
Sam Rawlins fbe4cbf69f Bump linter to 07c4d17, just before new deprecated_member rule
Bug: https://github.com/dart-lang/sdk/issues/50796
Change-Id: I11d1ad107d8da147dd05329938bbe34325dfbb77
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289341
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2023-03-17 03:14:17 +00:00
Konstantin Shcheglov 5604db5fc9 Issue 51661. Fix for SwitchExpression in serialized expressions.
Change-Id: I64a56c8349898b7e2795df9ef1513f9288286668
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/288548
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-03-17 00:57:59 +00:00
Joshua Litt 743caee6f0 [js_types] Migrate Dart2Wasm internal interop classes to JS types.
Change-Id: I0cd2ca8d7b254372818beb5af66662dc276dd29e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/288640
Commit-Queue: Joshua Litt <joshualitt@google.com>
Reviewed-by: Srujan Gaddam <srujzs@google.com>
2023-03-16 22:50:05 +00:00
Danny Tuppeny 539dad5657 [analysis_server] Support moving sealed classes in "Move to File" refactor
Change-Id: Idc7b48c5f972a139b0675876d193fbed157ce27b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/288701
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2023-03-16 20:54:34 +00:00
Konstantin Shcheglov 3802bc7e32 Support for RecordTypeAnnotation in constants, in summaries.
Change-Id: I3569b719f61de9e10a80e251918c512f52958d3c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289301
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-03-16 20:41:22 +00:00
Sam Rawlins f46c9afc12 [analysis_server] Add type arguments to remaining raw types
The Maps are all JSON, so they become `Map<Object?, Object?>`.

Most other types get a `Object` or `Object?` type argument, and a
few also get `dynamic`.

Change-Id: I097318defed55360b5b0d910bd2d085a121e97b3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/287673
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2023-03-16 20:37:57 +00:00
Danny Tuppeny 454219b371 [analysis_server] Retain body's leading comments when adding curly braces
Fixes https://github.com/Dart-Code/Dart-Code/issues/4440.

Change-Id: Ibff7c0d0a04f3c122d3ffa2297ab3da6c5532ee0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289220
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2023-03-16 19:29:33 +00:00
Kallen Tu 26311db0b5 [cfe] Avoid reporting subtype modifier errors on final supertypes outside of library.
Change-Id: Ib923df6e9fcfb48e3c16a3edd4e308547cdb4348
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/288607
Commit-Queue: Kallen Tu <kallentu@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2023-03-16 19:01:17 +00:00
Sam Rawlins c761de6e3e [analyzer] Move 3 more HintCodes to be WarningCodes, UNNECESSARY_N*
Bug: https://github.com/dart-lang/sdk/issues/50796
Change-Id: I04e8428a45428c02a05e8370a6cb1e9c4cf8030c
TEST=trybots
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289029
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2023-03-16 18:52:18 +00:00
Janice Collins 68353d76a4 Add a flag to disable the new unified_analytics for a single session.
- Adds a new flag, `--suppress-analytics` to the `dart` command to
  disable both the unified and the legacy analytics for a single
  session while deprecating the existing flag, `--[no-]analytics` used
  for disabling the legacy analytics on a single pass.
- Pipelines the flag from `dart` through `dart analyze` and `dart fix`
  to the execution of the analysis server.
- Updates all applicable uses of `dart analyze`, `dart fix`, and the
  analysis_server binary entry points in the SDK to disable analytics
  for the test infrastructure.

Bug: https://github.com/dart-lang/sdk/issues/49445
Change-Id: I1302cad7e04b21454aa7d9e8ee72a876b231377d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/287661
Reviewed-by: William Hesse <whesse@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Janice Collins <jcollins@google.com>
2023-03-16 18:00:57 +00:00
Derek Xu ec39319bf7 [VM/Timeline] Add a synchronization monitor to TimelineTrackMetadataRace test
The test is still timing out on many configurations. Hopefully changing
the spin lock to a monitor fixes this.

TEST=TSAN, CI

Issue: https://github.com/dart-lang/sdk/issues/51654
Change-Id: I03d1199c18a225bbd621613211ef6a4ceee93ac7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289000
Commit-Queue: Derek Xu <derekx@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2023-03-16 17:46:28 +00:00
Jake Macdonald 51d5eb6e93 Remove build_daemon constraint from web template.
Having this hard coded means that older SDKs will forever put in a bad constraint, which will ultimately cause webdev to fail initially for all new projects created by those SDKs.

Bug:https://github.com/dart-lang/sdk/issues/51732
Change-Id: Icfbeda77662f62124e350b0f55c5a59b864c689f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289260
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
Auto-Submit: Jake Macdonald <jakemac@google.com>
2023-03-16 17:15:52 +00:00
Joshua Litt c828440c79 [js] Erase types in _skwasm_impl.
Change-Id: If6375a383b84c4eeb2ad90a8bf544d725d9502a4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289025
Auto-Submit: Joshua Litt <joshualitt@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Jackson Gardner <jacksongardner@google.com>
2023-03-16 17:04:17 +00:00
Devon Carew f910c3d92b [libraries.dart] update and normalize the libraries.dart file
Change-Id: Iee3f9439fd77d2d65b9017b55a552cfeb372685e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289065
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2023-03-16 16:59:55 +00:00
Daco Harkes 1f598154a0 [beta][vm] Fix Dart_CObject_Type breaking change
https://dart-review.googlesource.com/c/sdk/+/257925 added a new entry
in the middle of the `Dart_CObject_Type` enum, which changed the
value of the entries below. However, this enum is part of
`dart_api_dl.h` and versioned by `dart_version.h`.

New entries to `Dart_CObject_Type` should be added at the end of the
enum to avoid making breaking changes to the type.

TEST=tests/ffi/vmspecific_handle_dynamically_linked_test.dart

Bug: https://github.com/dart-lang/sdk/issues/51459
Bug: https://github.com/dart-lang/sdk/issues/51615
Cherry-Pick: https://dart-review.googlesource.com/c/sdk/+/284161
Change-Id: Ic3e37255bdbc2d75af7b9894a61293c84428e042
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/286741
Auto-Submit: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2023-03-16 16:28:43 +00:00
Johnni Winther 31f168daaa [cfe] Report error on identical keys in map patterns
Change-Id: I30b7da4470e00c511a42861137e07f1cb88c7e84
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/288901
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
2023-03-16 15:40:59 +00:00
Alexander Markov c2d664a5e9 [vm/compiler] Take cid into account when deciding if CheckClass is needed during inlining
The recent change [1] improved availability of static types.
While that change improved performance on a lot of benchmarks,
it also caused a regression of SkeletalAnimationSIMD
benchmark in JIT mode.

The benchmark regressed because:
* When inlining a recognized method in call specializer,
  compiler checks if an extra CheckClass instruction should be
  inserted using FlowGraph::CheckForInstanceCall.
* CheckForInstanceCall has been looking only at the static type of
  the receiver. When static type is absent, it is calculated from cid.
  For a method lookup, cid is more precise compared to a static type.
  So, when static type becomes available since [1], cid was no longer
  used and extra CheckClass instructions were inserted to the IL.
* During inlining, extra CheckClass instructions increased callee size
  and a useful inlining didn't happen, prohibiting other optimizations
  and causing the regression.

This change fixes CheckForInstanceCall to look at the cid
first before looking at the static type.

[1] https://dart-review.googlesource.com/c/sdk/+/287222

TEST=SkeletalAnimationSIMD benchmark

Change-Id: I8cb496dee443eab9db828f1e28ba1efe7ea3f8ea
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289020
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2023-03-16 14:35:58 +00:00
Sam Rawlins 2b17d6d883 Report CAST_FROM_NULL_ALWAYS_FAILS in CastPatterns
Bug: https://github.com/dart-lang/sdk/issues/51750
Change-Id: I71372456878beee9cfb0a16a025ca0f6d432d622
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289240
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2023-03-16 14:29:57 +00:00
Chloe Stefantsova 21bf3b60b6 [cfe] Utilize analyzePatternForIn in the CFE
Part of https://github.com/dart-lang/sdk/issues/49749

Change-Id: I259bb247e08542d8d5ba7785b02fd916adc28ed0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/288760
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
2023-03-16 14:10:31 +00:00
Johnni Winther 712930e834 [cfe] Remove ConstantEvaluator.libraryOf
Instead of finding the current library through the parents relation
we use the static type context which already had access to the
library.

Change-Id: Ia2116160b24b701ffa0794b9ccc9a59506c3adc0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/288840
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2023-03-16 13:37:19 +00:00
Johnni Winther c62534fc03 [cfe] Clean up properties on Pattern classes
This removes the "unset" values and uses nullable types instead.
The names and uses of the pattern fields are normalized, using
`matchedValueType`, `requiredType` and `lookupType` consistently
between [Pattern] subclasses.

TEST=existing

Change-Id: Ic79ce17075aa8ce252e1c223b59bef660f32bb7c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/288704
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2023-03-16 11:43:58 +00:00
Sigurd Meldgaard 24af087585 Bump pub to 4bd757ce1dad04035fb0dbc6156879af23d8b3b8
This includes all the changes reverted in https://dart-review.googlesource.com/c/sdk/+/289062

This also contains `https://dart.googlesource.com/pub.git/+/c939e81f Fix issue with _ in package names in dart add (3838)` fixing the reason for the revert.

Changes:
```
> git log --format="%C(auto) %h %s" 048e3ad..4bd757c
 https://dart.googlesource.com/pub.git/+/4bd757ce Handle http errors gracefully when downloading archive (3811)
 https://dart.googlesource.com/pub.git/+/c939e81f Fix issue with _ in package names in dart add (3838)
 https://dart.googlesource.com/pub.git/+/9df0fddf Lazy construction of cache path. (3837)
 https://dart.googlesource.com/pub.git/+/554b3c32 Lazy loading of pubspec.yaml from entrypoint (3835)
 https://dart.googlesource.com/pub.git/+/cfaec21f Remove support for legacy credentials file (3824)
 https://dart.googlesource.com/pub.git/+/142baa3a Remove the exported deprecatedpubCommand (3825)
 https://dart.googlesource.com/pub.git/+/719afcf4 Remove obsolete TODO. (3827)
 https://dart.googlesource.com/pub.git/+/80d3e0d6 Remove obsolete tests (for features) (3834)
 https://dart.googlesource.com/pub.git/+/09eb6125 Remove barback, build and serve commands (3833)
 https://dart.googlesource.com/pub.git/+/e2e740ca Remove command list-package-dirs (3832)
 https://dart.googlesource.com/pub.git/+/6db5faa2 Remove support for PUB_CACHE in APPDATA on windows (3831)
 https://dart.googlesource.com/pub.git/+/a7a74857 Don't ignore a folder called 'packages' when publishing (3828)
 https://dart.googlesource.com/pub.git/+/70bfc022 Remove support for .pub package-local cache (3823)
 https://dart.googlesource.com/pub.git/+/4cd7a0a5 Use local variable for buffer (3826)
 https://dart.googlesource.com/pub.git/+/397e245e Remove obsolete TODO. (3821)
 https://dart.googlesource.com/pub.git/+/17ec4652 Handle malformatted content-hashes in cache, version listing or pubspec.lock (3818)
 https://dart.googlesource.com/pub.git/+/49c682c7 Add workflow to close need-info issues with responses. (3817)
 https://dart.googlesource.com/pub.git/+/bcb5ce18 Fix wrong action when executing git command (3814)
 https://dart.googlesource.com/pub.git/+/086c2d12 Larger size limit for caching package listings (3815)
 https://dart.googlesource.com/pub.git/+/94b43d05 remove an extra period from a publish message (3812)
 https://dart.googlesource.com/pub.git/+/d69493e5 Don't allow non-null-safety constraints in the root pubspec (3800)
 https://dart.googlesource.com/pub.git/+/3514d7e7 Fail gracefully when tar file contains duplicate entries (3805)
 https://dart.googlesource.com/pub.git/+/0b3b8b44 Give full error even in summary mode (3804)
 https://dart.googlesource.com/pub.git/+/09c29722 Allow adding and removing dependency overrides (3716)
 https://dart.googlesource.com/pub.git/+/7184d1b5 accept 'topics' property in pubspec.yaml (3796)
 https://dart.googlesource.com/pub.git/+/cd106dfd Improve usage text of get (3792)
 https://dart.googlesource.com/pub.git/+/019d61cb Handle bad git revisions (3791)
 https://dart.googlesource.com/pub.git/+/e3ff7a99 Use 'pkg' and 'packages' to trigger suggestions for the pub command (3731)
 https://dart.googlesource.com/pub.git/+/ea24bf22 Better error when path dependency has no pubspec.yaml (3787)
 https://dart.googlesource.com/pub.git/+/da2a0144 Drop --use-data-isolate-strategy flag for tests (3788)
 https://dart.googlesource.com/pub.git/+/a565858e Improve documentation of `pub token` and subcommands (3778)
 https://dart.googlesource.com/pub.git/+/dd320459 Add test for publishing and consuming files with unicode characters in name (3785)
 https://dart.googlesource.com/pub.git/+/c4226d9f Fail tests on errors thrown by test PackageServer (3784)
 https://dart.googlesource.com/pub.git/+/12019939 Consider pubspec_overrides.yaml when publishing (3782)
 https://dart.googlesource.com/pub.git/+/d8a97497 Allow addition of tokens for insecure localhost repositories (3777)

```

Diff: https://dart.googlesource.com/pub.git/+/048e3ad2b5e1b4ebe6883addbc95722be6904a7b..4bd757ce1dad04035fb0dbc6156879af23d8b3b8/
Change-Id: I67babf094b7cc4152c5c4ccc4b3e536634a57fc2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289201
Commit-Queue: Sigurd Meldgaard <sigurdm@google.com>
Reviewed-by: William Hesse <whesse@google.com>
2023-03-16 11:17:33 +00:00
William Hesse 9ca5ea6f7e [infra] Update checked-in SDKs to 3.0.0-322.0.dev
Change-Id: I00752198daceccf41d688f5aeb3bb8595e91d78b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289040
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
Commit-Queue: William Hesse <whesse@google.com>
2023-03-16 09:54:18 +00:00
Stephen Adams 03bdee6754 [dart2js] Avoid capturing dangling else in labeled then-part
Bug: https://github.com/flutter/flutter/issues/122724

Change-Id: I431bd8c1147958cefd6874187364bcf7f347c966
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289066
Reviewed-by: Nate Biggs <natebiggs@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2023-03-16 03:47:29 +00:00
Devon Carew 2ba4e232be [sdk] remove a duplicate copy of the libraries.dart file
Change-Id: I5a1bef7bb1ae179894ccfc4fb1225a5c3c9c7988
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289064
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2023-03-16 01:06:44 +00:00
Siva Annamalai 5f69a0c72e Revert "[deps] rev args, benchmark_harness, csslib, dartdoc, http, shelf, webdev, yaml_edit"
This reverts commit aab39d3938.

Reason for revert: Failing some internal builds with the following error
http_client_conformance_tests: #wrong_required_libs #wrong_conditional_srcs
  "required_libs" is currently [] but the code imports ["isolate"].

Original change's description:
> [deps] rev args, benchmark_harness, csslib, dartdoc, http, shelf, webdev, yaml_edit
>
> Revisions updated by `dart tools/rev_sdk_deps.dart`.
>
> args (9305d5a..7a5e3b0):
>   7a5e3b0  2023-03-14  Devon Carew  update readme; add contributing doc (#237)
>
> benchmark_harness (a6a0891..725534a):
>   725534a  2023-03-14  Kevin Moore  Spelling fixes, latest lints, move to minilibs (drop parts) (#85)
>
> csslib (b671738..d32bdd4):
>   d32bdd4  2023-03-14  Devon Carew  refactor the package example (#170)
>
> dartdoc (98fa859..7fde7a4):
>   7fde7a4d  2023-03-13  dependabot[bot]  Bump github/codeql-action from 2.2.5 to 2.2.6 (#3363)
>
> http (805a147..74f9d3d):
>   74f9d3d  2023-03-09  Brian Quinlan  Add conformances test that verify that the Client works in Isolates (#889)
>   ee03604  2023-03-09  Brian Quinlan  Add a flag to allow the default Client to be tree shaken away. (#868)
>   2039fb3  2023-03-09  Brian Quinlan  Fix a reference count race with forwarded delegates. (#888)
>
> shelf (e3cfe79..9a792b4):
>   9a792b4  2023-03-13  Kevin Moore  Update format for latest v3 SDK (#340)
>   c8094b7  2023-03-13  Kevin Moore  Update no-response.yml - once a day (#339)
>
> webdev (cfe9753..a15fde0):
>   a15fde0  2023-03-15  Anna Gringauze  fix matching record types (#2032)
>   05031da  2023-03-14  Anna Gringauze  Update build_daemon constraint and log errors (#2029)
>   49013b8  2023-03-09  Elliott Brooks (she/her)  [MV3 Debug Extension] Fix authentication issue for the Dart Debug Extension (#2026)
>   c8d4439  2023-03-09  Elliott Brooks (she/her)  Support `Set` inspection in DWDS (#2024)
>   442639d  2023-03-08  Elliott Brooks (she/her)  Handle unexpected extension debugger disconnection events without crashing app (#2021)
>
> yaml_edit (6abc42a..fbc5cb3):
>   fbc5cb3  2023-03-09  Kevin Moore  Require Dart 2.19, update to latest lints
>   c9e82f0  2023-03-09  Mohamed Ishad  Fix YamlEditor.update method leaving trailing spaces at eol (#42)
>
> Change-Id: Ia79a056cfaf7e51e73fdc6fd353e5f1938e6881a
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289023
> Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
> Auto-Submit: Devon Carew <devoncarew@google.com>

Change-Id: I07b1e6041babc92df359da89eb18c1daf2634d88
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289024
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2023-03-15 22:47:03 +00:00
Siva Annamalai 91844f1212 Revert "Reland "Bump pub to d69493e5163553bde53c0889b7479dee02f550bf""
This reverts commit ef8aaa3301.

Reason for revert: It doesn't seem to solve the flutter issue, A roll into flutter showed the same error https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8786538012879301585/+/u/run_entrypoint_dart_registrant/test_stdout

Original change's description:
> Reland "Bump pub to d69493e5163553bde53c0889b7479dee02f550bf"
>
> This is a reland of commit a06ade1d14
>
> Fix of flutter issue was landed here:
> 3f2cca8eeb
>
> Original change's description:
> > Bump pub to d69493e5163553bde53c0889b7479dee02f550bf
> >
> > Changes:
> > ```
> > > git log --format="%C(auto) %h %s" 048e3ad..d69493e
> >  https://dart.googlesource.com/pub.git/+/d69493e5 Don't allow non-null-safety constraints in the root pubspec (3800)
> >  https://dart.googlesource.com/pub.git/+/3514d7e7 Fail gracefully when tar file contains duplicate entries (3805)
> >  https://dart.googlesource.com/pub.git/+/0b3b8b44 Give full error even in summary mode (3804)
> >  https://dart.googlesource.com/pub.git/+/09c29722 Allow adding and removing dependency overrides (3716)
> >  https://dart.googlesource.com/pub.git/+/7184d1b5 accept 'topics' property in pubspec.yaml (3796)
> >  https://dart.googlesource.com/pub.git/+/cd106dfd Improve usage text of get (3792)
> >  https://dart.googlesource.com/pub.git/+/019d61cb Handle bad git revisions (3791)
> >  https://dart.googlesource.com/pub.git/+/e3ff7a99 Use 'pkg' and 'packages' to trigger suggestions for the pub command (3731)
> >  https://dart.googlesource.com/pub.git/+/ea24bf22 Better error when path dependency has no pubspec.yaml (3787)
> >  https://dart.googlesource.com/pub.git/+/da2a0144 Drop --use-data-isolate-strategy flag for tests (3788)
> >  https://dart.googlesource.com/pub.git/+/a565858e Improve documentation of `pub token` and subcommands (3778)
> >  https://dart.googlesource.com/pub.git/+/dd320459 Add test for publishing and consuming files with unicode characters in name (3785)
> >  https://dart.googlesource.com/pub.git/+/c4226d9f Fail tests on errors thrown by test PackageServer (3784)
> >  https://dart.googlesource.com/pub.git/+/12019939 Consider pubspec_overrides.yaml when publishing (3782)
> >  https://dart.googlesource.com/pub.git/+/d8a97497 Allow addition of tokens for insecure localhost repositories (3777)
> >
> > ```
> >
> > Diff: https://dart.googlesource.com/pub.git/+/048e3ad2b5e1b4ebe6883addbc95722be6904a7b..d69493e5163553bde53c0889b7479dee02f550bf/
> > Change-Id: I92af981e9cb6aaedfcd75a7327dfef071645306b
> > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/285908
> > Reviewed-by: Jonas Jensen <jonasfj@google.com>
> > Commit-Queue: Sigurd Meldgaard <sigurdm@google.com>
> > Reviewed-by: William Hesse <whesse@google.com>
>
> Change-Id: Ieeab0b4782afa216b353b91c57bde90957ce0aff
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/288440
> Reviewed-by: William Hesse <whesse@google.com>
> Commit-Queue: Sigurd Meldgaard <sigurdm@google.com>

Change-Id: Ibf3e7ec9080b137672ad2b9179090e6c980c6962
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289062
Reviewed-by: William Hesse <whesse@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
2023-03-15 21:45:39 +00:00
Danny Tuppeny 2c321ea2a1 [analyzer] Ensure wrapped watcher streams are cancelled when subscriber cancels
Fixes https://github.com/dart-lang/sdk/issues/51746.

Change-Id: If5e98eef60c9404378c7bbb050fcfbe6a6d807f2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289080
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-03-15 21:25:06 +00:00
Keerti Parthasarathy 3ad45940d6 Add ability to disable sending analytics using the unified analytics package on --disable-analytics option.
Currently users can enable analytics using the unified analytics package in VS Code, but there is no option the disable from the UI. Adding this allows users to disable analytics by running `dart --disable-analytics`.

Change-Id: Ieff4281ab3fbdccee7ec7a05b185f5c4f9da6f76
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289082
Reviewed-by: Elias Yishak <eliasyishak@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
2023-03-15 21:01:47 +00:00
Alexander Markov e716e5a35c [vm/tests] Split vm/dart/optimized_switch_test to pre- and post-Dart 3.0 versions
TEST=ci
Closes https://github.com/dart-lang/sdk/issues/51684

Change-Id: Iea9c42ed5940ff02d2774b6c938f887b1365fd34
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/288580
Auto-Submit: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Slava Egorov <vegorov@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
2023-03-15 20:05:38 +00:00
pq b68719c737 argument and assignment switch assists
Fixes: https://github.com/dart-lang/sdk/issues/49960

Change-Id: Ie9865de244bdb5d4e0e2e045408bd4c18229bd0f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/287904
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2023-03-15 19:27:39 +00:00
Johnni Winther e680c98881 [_fe_shared_analyzer] Pass context type when creating spaces from patterns
This passes the [StaticType] for the context of a pattern to the
pattern converter. This is used to restrict the static type of the
created space. For instance when creating the space for an untyped
wildcard pattern, the context type will be used instead of the
nullable-object (top) type. For other patterns, if the context type
is a subtype of the type for the pattern itself, the context type
will be used instead.

This has the benefit that when checking for unreachable cases we will
not take a too broad case to mean that it has some that it could match.
For instance in `Foo(:var hashCode)` the space for `var hashCode` would
have been the nullable-object type, and if the preceeding case was
`Foo(:int hashCode)`, the reachable check would fail to see that all
cases are covered since nullable-object is not a subtype of int.

With this change, such cases are now handled.

Change-Id: I5b6248bf79c8cf0b365eee2f3ca78090c3f43512
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/288902
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2023-03-15 19:17:48 +00:00