Commit graph

88820 commits

Author SHA1 Message Date
Alexander Markov 7ebd4dd61c [3.0 alpha] Remove deprecated public class CyclicInitializationError
This deprecated class cannot be removed just yet because
we still need to throw something in case of cyclic initialization
in Dart legacy libraries (which are still supported).

Class CyclicInitializationError is copied for each implementation
(VM, dart2js and DDC) and made private. Each implementation now has
an independent private class which can be removed separately.

TEST=ci
Issue: https://github.com/dart-lang/sdk/issues/49529
Change-Id: I8100bbe16636c12c4cbabbb5fe770f4c648c4249
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275120
Commit-Queue: Michael Thomsen <mit@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2022-12-15 11:20:58 +00:00
Ilya Yanok 822d15e7cc nnbd_migration: fix crash on mixin override
Migration tool currently crashes if a class overrides
some methods it got by adding a mixin.

Added a test for that and fixed the crash, the fix
boils down to casting to just `InterfaceElement` instead
of `ClassElement`.

Tested: added a new test
Change-Id: Iab5ddb26c4930ed2020d6f3caa0710e55f24d8c2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275721
Commit-Queue: Ilya Yanok <yanok@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2022-12-15 09:19:38 +00:00
Ömer Sinan Ağacan 6cda72d39e [dart2wasm] Add special case for const adjacent strings
Language specification (section 17.2) says two strings are identical
when they're both constants and equal.

It doesn't mention adjacent strings, but looking at the tests, it seems
like juxtaposition of constant strings are expected to be constants as
well.

This adds a special case in string juxtaposition compiler to handle the
case where parts of the adjacent strings are all constants.

New passing tests:

- co19/Language/Expressions/Instance_Creation/Const/canonicalized_t05
- co19/Language/Expressions/Strings/adjacent_strings_t02
- language/const/string_test

Change-Id: Ib46582be492ba20c417546cbfb4e67b2d90e3ba3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275200
Commit-Queue: Ömer Ağacan <omersa@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2022-12-15 07:45:47 +00:00
Ryan Macnak 78732b243e [vm] Fail describing errno if mmap fails for any reason except ENOMEM.
Avoids the VM later failing with a misleading "Out of Memory" message when allocation fails for lack of permission, etc.

TEST=ci
Bug: https://github.com/dart-lang/sdk/issues/50719
Change-Id: I52b2478092a5e5b59680f31d37ab3c6d6d816ba0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275783
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-12-15 00:52:58 +00:00
Nicholas Shahan 022ca53db3 [ddc] Remove use of NullThrownError
Throw a `TypeError` with the same message, 'Throw of null.'
instead of a `NullThrownError`.

Fixes: https://github.com/dart-lang/sdk/issues/50598
Change-Id: Ic13d6bc29a49c405ef3d3d0eb4f7fd781aefbc6b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/273281
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2022-12-15 00:10:59 +00:00
Devon Carew cabf333606 [deps] rev browser_launcher, dartdoc, intl, mime, mockito, sse, webdev
Revisions updated by `dart tools/rev_sdk_deps.dart`.

browser_launcher (5fa0bd6..2712dda):
  2712dda  2022-12-13  Anna Gringauze  Fix internal CI test failures (#35)

dartdoc (eb90a44..1f42216):
  1f422163  2022-12-13  Sam Rawlins  Bump to 6.1.5 (#3274)

intl (234b291..6fb07f2):
  6fb07f2  2022-12-14  Copybara-Service  Merge pull request #520 from dart-lang:revto18
  1f9815c  2022-12-14  Moritz  Rev version in preparation for publish of 0.18.0
  1d37c42  2022-12-13  Googler  Internal change
  708b85c  2022-12-13  Copybara-Service  Merge pull request #498 from dart-lang:remove_intl_stream
  2d9eca9  2022-09-28  moritz  sort imports
  08a35bd  2022-09-28  moritz  Merge branch 'master' into remove_intl_stream
  0fc6ab9  2022-09-28  moritz  Changes as per review
  4680742  2022-09-27  moritz  rename to stack
  f687c72  2022-09-27  moritz  changes as per review
  ef36013  2022-09-26  moritz  add reference to benchmark
  117c0cf  2022-09-26  moritz  separate read and pop
  434378a  2022-09-26  moritz  move method
  e98c4aa  2022-09-26  moritz  fix typo
  9234540  2022-09-26  moritz  rename file
  024cffc  2022-09-26  moritz  make it a tad faster
  c6f7b6a  2022-09-26  moritz  some renaming
  443c9e0  2022-09-26  moritz  Remove StringIterator
  1953002  2022-09-23  Nate Bosch  Inline the extension
  4dfdc1b  2022-09-22  Nate Bosch  Simplify the IntlStream class

mime (c0c4c47..273d454):
  273d454  2022-12-13  tomk9  Add .dcm to extension map (#74)
  aacec32  2022-12-12  Kevin Moore  Update to latest lints, bump min SDK to 2.18 (#77)
  536db4f  2022-12-12  Kevin Moore  blast_repo fixes (#79)
  2343229  2022-12-12  Kevin Moore  Add .msj (and change .js) to text/javascript (#76)

mockito (347d3e4..942dd03):
  942dd03  2022-12-12  yanok  Override `SmartFake.toString` to be super-verbose
  5f97a43  2022-12-09  Sam Rawlins  Stop using deprecated analyzer APIs
  0660e61  2022-12-06  yanok  Generate method overrides even then source lib is not null-safe
  cf7d851  2022-12-06  yanok  Add override for `Object.operator==` in `SmartFake`
  6b89e99  2022-12-02  yanok  Automated g4 rollback of changelist 492410078.
  d11d010  2022-12-02  yanok  Generate method overrides even then source lib is not null-safe

sse (d396145..cfa93b1):
  cfa93b1  2022-12-14  Elliott Brooks (she/her)  Add `package:js` to dependencies (#71)
  00335e4  2022-12-13  Elliott Brooks (she/her)  Update `package:sse` to `4.1.2`(#70)

webdev (3e2364e..317288a):
  317288a  2022-12-14  Derek Xu  Remove ChromeProxyService.setExceptionPauseMode() (#1820)
  bbe7143  2022-12-14  Elliott Brooks (she/her)  Migrate `events_test.dart` to null-safety (#1819)
  1d1c98f  2022-12-14  Elliott Brooks (she/her)  Settings page, Dart Debugger panel, and Flutter Inspector panel match DevTools styles (#1815)
  a9b8887  2022-12-13  Elliott Brooks (she/her)  Update tests that are incompatible with `3.0.0` (#1817)

Change-Id: I08e555dc22e5577740fe43e91ff31e4601ac15f0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275781
Commit-Queue: Nate Bosch <nbosch@google.com>
Auto-Submit: Devon Carew <devoncarew@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
2022-12-14 23:49:42 +00:00
Ryan Macnak 98af4110ad [vm] Increase supported range of TypeParameters to 16 bits.
TypeParameter::set_index was already asserting for 16 bits but silently truncating to 8 bits. The size of TypeParameter does not increase due to allocation rounding.

Add explicit range check to class finalization.

TEST=ci
Change-Id: Id4017f74b7dba47b00d64e77e787712c70290dac
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275560
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-12-14 23:34:18 +00:00
Alexander Markov 987775d6fb [vm] Type testing stubs for record types
Benchmarks improved by:
JIT:
RecordCollections.ListAddPoly.Record ~9.6 times
RecordCollections.ListSetIndexed.Record ~8.3 times
RecordCollections.ListSetIndexedPoly.Record ~16.1 times
RecordCollections.MapAdd.RecordKey ~3.6 times
RecordCollections.MapAdd.RecordValue ~4.4 times
RecordCollections.SetAdd.Record ~4.1 times
AOT:
RecordCollections.ListAdd.Record ~8.7 times
RecordCollections.ListAddPoly.Record ~8.8 times
RecordCollections.ListSetIndexed.Record ~19.5 times
RecordCollections.ListSetIndexedPoly.Record ~18.3 times
RecordCollections.MapAdd.RecordKey ~7.1 times
RecordCollections.MapAdd.RecordValue ~8.8 times
RecordCollections.SetAdd.Record ~8.9 times

TEST=vm/cc/TTS_RecordSubtypeRangeCheck

Issue: https://github.com/dart-lang/sdk/issues/49719
Change-Id: I96e4c6a40a897a72b3570b59e014c8af77a9ef99
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275082
Reviewed-by: Tess Strickland <sstrickl@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2022-12-14 22:33:38 +00:00
Ryan Macnak 8a37b70a53 [vm, compiler] More consistently support large load/store offsets.
TEST=ci
Change-Id: I7691808679c57c6f16f3859641cf52b9e606e304
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275381
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-12-14 22:17:35 +00:00
Nicholas Shahan faf8027465 [tests] Update expectation to TypeError
TypeError is now expected in the place of NullThrownError which is
being removed in Dart 3.0.

Change-Id: Ibb7188d993216067650d4b994a303f2bcd1d2298
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275742
Reviewed-by: Leaf Petersen <leafp@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2022-12-14 21:37:27 +00:00
Sam Rawlins f30e5de558 Remove preview-dart-2 option in analysis options
Fixes https://github.com/dart-lang/sdk/issues/50680

AnalysisOptionsHintCode is moved from generated `option_codes.g.dart` to `option_codes.dart`, for non-generated diagnostics:

* AnalysisOptionsHintCode.DEPRECATED_LINT_HINT and
* AnalysisOptionsHintCode.DUPLICATE_RULE_HINT

Change-Id: I131fb2901fca26ff971b6c9c519ab2f0b983a65c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275500
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2022-12-14 21:04:29 +00:00
Ryan Macnak 4baa958d08 [vm] Remove overly-narrow NoSafepointScopes.
These NoSafepointScopes are active for only one load/store where there is little need to guard against someone adding an allocation. They have been observed to take up to 15% of program execution in debug builds.

TEST=ci
Change-Id: I923baa28a3a72decacbfcdec3331ce9c7c620b67
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275540
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-12-14 20:55:29 +00:00
Tess Strickland bd81c8bc06 [pkg/dart2native] Add checks to avoid MachO-related regressions.
Now that 9df6656aa9 has appropriately propagated and the build rules in
google3 have been updated, re-add checks to ensure that the empty
section used to pad the original header exists and that the new header
is smaller than the old header.

Bug: https://github.com/dart-lang/sdk/issues/49783
Change-Id: I5b8b31bf9edf4814686eb7928457a9a7d53c0727
Cq-Include-Trybots: luci.dart.try:dart-sdk-mac-try,dart-sdk-mac-arm64-try,pkg-mac-release-arm64-try,pkg-mac-release-try,vm-kernel-mac-release-arm64-try,vm-kernel-mac-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275622
Commit-Queue: Tess Strickland <sstrickl@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2022-12-14 20:16:57 +00:00
Brian Wilkerson ce99386077 Update the noSoundNullSafety flag to allow for testing
Change-Id: Ibf79675c758ffefaa8af7488dd1965f0fabbfc4b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275741
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-12-14 19:13:28 +00:00
Jens Johansen 959f0a299c [analyzer] Report memory usage on Windows too
Change-Id: I6a31370c51e40a9593f8875d365a43d9f4111aaf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275660
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2022-12-14 18:11:25 +00:00
Paul Berry c6d287cc05 Move business logic into shared patterns analysis for relational patterns.
Previously, the client had to know that the relational operator should
be looked up in the matched value type.  Now the shared analysis logic
requests the lookup and supplies the appropriate type.

It's a small change, and one might argue that it doesn't really move
around very much business logic, but it makes the tests more readable
so I think it's worth it.

Change-Id: I936d5f5f929f11800efe25974334c898c7e1072d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275360
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
2022-12-14 17:25:59 +00:00
Danny Tuppeny ec8918c20c [dds/dap] Handle errors parsing/casting launch/attach arguments and provide useful errors
Fixes https://github.com/dart-lang/sdk/issues/50709.

Change-Id: I35a7593ced462ab81d52069db831e5f95a9a4ba7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275623
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2022-12-14 17:19:05 +00:00
Joshua Litt 9b79ab636c [dart2wasm] Chunk copying large strings to JS.
This change is necessary for large strings because otherwise we hit V8's maximum argument limit to a function.

Change-Id: I2473d1c5acd62f16d509752c437678c697e7ebeb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275480
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2022-12-14 17:16:01 +00:00
Sam Rawlins a5392b932b Re-categorize all SDK_VERSION_* codes as StaticWarningCode
Change-Id: If7a83f9f3258ce369dbe3142fcd5c088d6d88e40
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275160
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2022-12-14 16:14:38 +00:00
Kallen Tu 120bfdc076 [analyzer/cfe] Parse 'mixin class' behind sealed flag.
Allow 'mixin class' modifier which allows a class to be used as a mixin.
https://github.com/dart-lang/language/blob/master/working/base-interface-final/feature-specification.md

Change-Id: I6b4dac75f2ff09b7ef833c5e015b1baf7fa3883b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275144
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Kallen Tu <kallentu@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2022-12-14 15:41:58 +00:00
Paul Berry 9b294b846b Only set isExplicitlyExhaustive on switch statements without default clauses.
This enables the front end to skip the old-style (enum-based)
exhaustiveness checking algorithm when pattern support is enabled,
because with pattern support enabled, switches on enums are required
to be exhaustive (this will be checked by the new exhaustiveness
checking algorithm).

That in turn means that in the future, when we remove support for
language versions that lack patterns support, we will be able to
remove the old-style exhaustiveness checking algorithm.

This change has a small effect on code generated by the WASM back-end
(the only back-end that uses `isExplicitlyExhaustive`): for a switch
statement that is exhaustive *and* has an unreachable `default`
clause, after testing all the cases, the WASM back-end will generate a
branch to the `default` case.  Previously it would instead generate an
`unreachable` instruction.  There should be no behavioural difference
because the instruction in question is unreachable in both cases.
Also, there should be negligible code size difference because the body
of the `default` case is being emitted either way.

Bug: https://github.com/dart-lang/sdk/issues/50419
Change-Id: Id6bd7d9a540cb1b4d9c3624db8ff494438276bea
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/274924
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2022-12-14 14:38:50 +00:00
Paul Berry 607b370933 Shared patterns analysis API: remove matchedType from method calls.
A desired feature for flow analysis of patterns is that the matched
value type of one subpattern may depend on promotions from previous
patterns.  For example, we want this to work:

    int? x = ...;
    if (x case null || < 0) ...;

This means that although the type of the scrutinee is `int?`, after
the subpattern `null` has been processed, type promotion should
promote the matched value type to `int`, so that the subpattern `< 0`
doesn't report an error.

This requires changing the API of the shared patterns analysis logic,
so that the client is no longer responsible for passing around the
matched value type.  Instead, flow analysis keeps track of it and
provides it to the client when requested.

In follow-up CLs I'll add the necessary logic to flow analysis to
actually promote the matched value type in situations like the example
above.

Change-Id: I6ce66962af32f9bd93bfe4082ba256de627d3cc6
Bug: https://github.com/dart-lang/sdk/issues/50419
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/274942
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
2022-12-14 14:06:30 +00:00
Ömer Sinan Ağacan 0bb3b53194 [tests] Update a test for dart2wasm
The test stacktrace_current compares two stack traces by masking any
line numbers.

With dart2wasm, V8 shows function offsets instead of line numbers, in
hex, which causes the test to fail with unrelated changes.

This updates the regex to mask hex numbers as well, making the test
stable with unrelated dart2wasm changes.

Change-Id: I8dd951d4bf29fe39b6ec5d8de7bf2c9c37a5b5b3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275600
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
2022-12-14 13:41:46 +00:00
Ömer Sinan Ağacan af5c53b087 [dart2wasm] Mark static variables initialized on assignment
New passing tests:

- co19/LibTest/core/Stopwatch/stop_A01_t01
- language/getter/setter_getters_setters_test
- language/identifier/naming_test
- language/lazy/static3_test
- language/lazy/static7_test
- language/lazy/static_test
- language/loop/for_in2_test
- language/new/statement_test
- language/nnbd/inference/variables_initialized_to_null_test
- language/operator/operator_test
- language/setter/setter0_test
- language/setter/setter1_test
- language/super/call2_test
- language/unsorted/inv_cse_licm_test

Change-Id: Id7dd53228f1476190dffe3b22ba91d04ed4c2a14
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275320
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
2022-12-14 13:38:27 +00:00
Johnni Winther 77e24a6736 [cfe] Migrate noSuchMethod forwarder tests to null-safety
Change-Id: I7fbfc06a864eaaf4052b736d756410be5d1ab531
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275601
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2022-12-14 13:12:09 +00:00
Johnni Winther e550718712 [cfe] Compute noSuchMethod forwarders in members builder
TEST=existing

Change-Id: I24c6732bf2b099af249fa5f461b1933b4259b708
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/272301
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
2022-12-14 09:25:57 +00:00
Johnni Winther cc35b9bcda [patterns] Handle nullability in StaticType for top/nullType
This updates the exhaustiveness implementation to have specific static
built-in types for nullableObject (the top) and its underlying nonNullableObject,
nullType and its underlying neverType. In the previous encoding, the top
wasn't nullable (if you queried the isNullable property) but was still
assumed to contain `Null` in other parts of the code.

With this change, the top space is now an ExtractSpace based on
StaticType.nullableObject, the empty space is an ExtractSpace based on
StaticType.neverType and record spaces are based on
StaticType.nonNullableObject.

The StaticType is now split into a StaticType interface and a
StaticTypeImpl implementation class for the non-built-in types. This
prepares for integrating the exhaustiveness checking with the analyzer
and CFE where the properties of the sub/supertype relation and fields of
the StaticType needs to be computed lazily.

Change-Id: I5a6919d7cba356f9bc8ac3f69fd3ac2b41319e9b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/274020
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2022-12-14 09:21:27 +00:00
Johnni Winther 434b65470b [cfe] Rename *ViewBuilder to *InlineClassBuilder
Change-Id: I4f4c6d076c25efa71f9f346eedc9431d8f0b5afb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275420
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2022-12-14 08:41:10 +00:00
Johnni Winther 81845864ca [kernel] Rename View* to Inline*
TEST=existing

Change-Id: I8726c936261ceb770b489f264d14fff02a1b4998
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275243
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2022-12-14 08:36:57 +00:00
Nate Biggs 0ebed3f7d5 [dart2js] Make _call non-null in CallSiteTypeInformation nodes.
Change-Id: I114b772f72dc377ea1a8a3499318fe71f1ea56da
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275460
Commit-Queue: Nate Biggs <natebiggs@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
2022-12-14 02:20:21 +00:00
Stephen Adams d633b0a383 [dart2js] More records implementation
These are scattered changes to get to type inferrence.

- Add some impact tracking for used record types
- Add RecordTypeInformation and FieldInRecordTypeInformation
- Add a simple test to show inference is currently very conservative.

Change-Id: Icb81033b11588c1bddd01c8c5fcf69950fdb77e9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275161
Reviewed-by: Nate Biggs <natebiggs@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2022-12-14 02:20:18 +00:00
Ryan Macnak 138a69a150 [vm, compiler] Conditionally use RV-B instructions.
TEST=ci, local qemu
Change-Id: I3321264b524d52e5a63a32f70b62f27182ebc247
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/273833
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-12-13 23:43:18 +00:00
Jackson Gardner 1306a4c284 [dart2wasm] Add intrinsics for bitwise operations on booleans.
Change-Id: Ic09545535c954d72615ca035ed1b133fada5d733
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275080
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Jackson Gardner <jacksongardner@google.com>
2022-12-13 23:07:40 +00:00
Nate Biggs c15f248840 [dart2js] Fix linearization call tracking.
`null` was being included in the set of called nodes and this was causing members normally called once to not be inlined.

Change-Id: Ie42302e47691bb924dea1e54b82e08072c0ecd7b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275122
Commit-Queue: Nate Biggs <natebiggs@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
2022-12-13 22:23:17 +00:00
Brian Wilkerson 1aebb81274 Improve the error message produced by ThrowingAstVisitor
Change-Id: I4f4d725d52a244d9c37bc44802782f7d8e97ab9a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275400
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-12-13 21:56:05 +00:00
DEPS Autoroller 4882c0f7b3 Roll Clang from f85c1f3b7c0b to 026df9514ead
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/clang-dart-sdk
Please CC dart-vm-gardener@grotations.appspotmail.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Clang: https://bugs.fuchsia.dev/p/fuchsia/issues/list?q=component%3AToolchain
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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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-mac-try;luci.dart.try:dart-sdk-mac-arm64-try;luci.dart.try:dart-sdk-win-try
Change-Id: I0de48589542afedfc2639400b6ae4239bc61aa11
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/274780
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-12-13 21:37:30 +00:00
Sam Rawlins ea120b5d44 Remove all support for all 'strong-mode' analysis options
Fixes https://github.com/dart-lang/sdk/issues/50679

Change-Id: I3572faf51276f5c7551d35b7725c799567189413
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/274921
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2022-12-13 21:32:24 +00:00
Brian Wilkerson 1b624249c2 Remove some unnecessary ignore comments in dart2native
Change-Id: I77a5f0fc48c6f4a814a1d7382ce67ce02ff62a19
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/274724
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-12-13 21:29:26 +00:00
Aske Simon Christensen f053d2170d [dart2wasm] Put function types of imports in singleton rec groups
Starting from ba6be821c99db09b0ef2689dea8f0cb863c47ff5 (11.0.194), V8
enforces type equivalence according to the canonical iso-recursive
types for functions imported from other modules or constructed using
`WebAssembly.Function`, which means that to match such a type, a
function type declared in a Wasm module must be declared in a
singleton rec group.

To be compatible with this new canonicalization scheme, we define the
function types for all imported functions each in their own rec group
separately from other types.

Change-Id: I166b4b7d1c8fa48638f816f874f737536a61f15d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/274388
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Joshua Litt <joshualitt@google.com>
2022-12-13 20:43:22 +00:00
Aske Simon Christensen 905b913a77 [dart2wasm] Classify value types in identical based on class ID
This avoids reliance on the distinctness of the Wasm types.

Change-Id: I23762c674fcf8b2101da30d91f0b6db9ae947d79
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/274681
Reviewed-by: Joshua Litt <joshualitt@google.com>
2022-12-13 20:43:22 +00:00
Vyacheslav Egorov 2f117ba43c [vm/aot] Fix ProgramElementKeyValueTrait::Hash.
It was returning library's index which is an unstable
value. This instability could cause `Precompiler::HasApiUse`
to stop returning `true` after `Precompiler::DropLibraries` even
if library was added to the `api_uses_` set. This in turn could cause
`Precompiler::PruneDictionaries` to drop library entries it should
not have dropped.

TEST=added assertion that verifies stability of the set

Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-linux-debug-x64-try
Change-Id: I0685bd75562f83e2b9d8b3a03fa410ba218df2ea
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275241
Reviewed-by: Tess Strickland <sstrickl@google.com>
Auto-Submit: Slava Egorov <vegorov@google.com>
Commit-Queue: Slava Egorov <vegorov@google.com>
2022-12-13 19:46:41 +00:00
Alexander Markov c673119d9e [benchmarks] Add benchmark for lists/maps/sets of records
Issue: https://github.com/dart-lang/sdk/issues/49719
Change-Id: I1cb36cc4e690ef463c26c8aa58a2186dfe3290e6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/273823
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2022-12-13 19:38:56 +00:00
Johnni Winther e742ecfa9e [parser] Parse 'inline' instead of 'view'
Change-Id: I2ec0553fccf6caa3aa93275955c9e8e2213ee7f9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275240
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2022-12-13 19:38:38 +00:00
Ryan Macnak fa2e1c70ca [vm] Fix various scaling limitations.
- Quadratic behavior recording field guards
 - Quadratic behavior looking up dynamic invocation forwarders
 - Incorrect limit generating allocation stubs

TEST=class with 64k fields
Change-Id: I7a9aba617e71eff9b28711e99c689cb04be0dde7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/273285
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-12-13 19:28:37 +00:00
Kallen Tu 93c3737674 [tests] Allow using classes as mixins within the same library and update a few language tests.
Change-Id: I4488b3ee7d04fe3a9c34ee3046f96e73984c0541
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/274602
Commit-Queue: Kallen Tu <kallentu@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
2022-12-13 18:29:58 +00:00
Sam Rawlins 35f0bb8187 Stop using strong-mode options in dart2js_runtime_metrics and scrape
Change-Id: I89347335d14ecf539fc7ea7fc44bd31680dbc458
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275302
Reviewed-by: Jake Macdonald <jakemac@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2022-12-13 18:27:22 +00:00
Sam Rawlins fdf59ad1eb Remove all support for super-mixins option
Bug: https://github.com/dart-lang/sdk/issues/50680
Change-Id: I96409d02e64d3e198e0fae4a55f58f871ce2aeac
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275142
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2022-12-13 18:13:37 +00:00
Devon Carew 0f0e19c49e Bump dartdoc to eb90a44c54fa01f0d501bf6e861a34857d843cea
Changes:
```
> git log --format="%C(auto) %h %s" f2bb6e9..eb90a44
 https://dart.googlesource.com/dartdoc.git/+/eb90a44c Remove annotations from the features section of each element (3268)
 https://dart.googlesource.com/dartdoc.git/+/16126376 Don't show null in search results when no description (3273)
 https://dart.googlesource.com/dartdoc.git/+/3ff7aa75 Fix search arrows by using a flat list of suggestions (3271)
 https://dart.googlesource.com/dartdoc.git/+/90264fb4 Bump github/codeql-action from 2.1.35 to 2.1.36 (3270)
 https://dart.googlesource.com/dartdoc.git/+/bede500d Fix remote linking in 2.18 and 3.0.0 (3267)

```

Diff: https://dart.googlesource.com/dartdoc.git/+/f2bb6e92aa4fa76a409f301773d5be6bfda897dc~..eb90a44c54fa01f0d501bf6e861a34857d843cea/
Change-Id: I588c7858493c2f5202d552a83505c585e57416b5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275300
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Auto-Submit: Devon Carew <devoncarew@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2022-12-13 18:06:49 +00:00
Devon Carew a3b7a76f8a Bump intl to 234b291aee7c23c9ffc9748fd6532d37553f609b
Changes:
```
> git log --format="%C(auto) %h %s" 881e53e..234b291
 https://dart.googlesource.com/intl.git/+/234b291 Add issue templates (519)
 https://dart.googlesource.com/intl.git/+/45a6df6 Merge pull request 356 from ZainUrRehmanKhan:Wrong_example_of_format_pattern_in_api_documentation
 https://dart.googlesource.com/intl.git/+/ef7ba54 Merge branch 'master' into Wrong_example_of_format_pattern_in_api_documentation
 https://dart.googlesource.com/intl.git/+/255a26e Example of format pattern fixed

```

Diff: https://dart.googlesource.com/intl.git/+/881e53e921e23bdcc2fb9d51b0a9cba769c8f75f~..234b291aee7c23c9ffc9748fd6532d37553f609b/
Change-Id: I25c8a09816d280d3e29638fa721e410345d073f3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275301
Auto-Submit: Devon Carew <devoncarew@google.com>
Commit-Queue: Moritz Sümmermann <mosum@google.com>
Reviewed-by: Moritz Sümmermann <mosum@google.com>
2022-12-13 17:35:05 +00:00
Johnni Winther e6d59342ff [cfe] Build PatternVariableDeclaration in BodyBuilder
Change-Id: Ic55dbc03bf2cf4865275b186266c0f420263d406
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/273744
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2022-12-13 17:03:13 +00:00