Joshua Litt
84c695a38d
Reland "[test] Fix some tests for Dart2Wasm."
...
This CL cleans up the logic in two tests to better prepare for Dart2Wasm. In addition, env_test has been cleaned up now that the multitest no longer makes sense.
Change-Id: I0a7eabff1e2bfb6ea7aa1078ee85a58db9886e21
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/267286
Reviewed-by: Siva Annamalai <asiva@google.com >
Commit-Queue: Joshua Litt <joshualitt@google.com >
2022-11-04 16:10:39 +00:00
Kallen Tu
d65a0c2de5
[tests] Language tests for sealed classes.
...
Basic language tests that test usage in and out of library for sealed classes.
More tests will come later.
Change-Id: I298484d214a5fe7602d14ab1d7915c733ef00c34
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265660
Reviewed-by: Bob Nystrom <rnystrom@google.com >
Reviewed-by: Leaf Petersen <leafp@google.com >
2022-11-03 22:27:39 +00:00
Alexander Markov
bbf93acbe7
[tests] Cleanup test with absent deferred library
...
Deferred libraries with sources not available at compile-time
are not supported since Dart 2.
This change cleans up test for such a case.
Change-Id: I7e4abb551a4d9997535b06030e3628aab6655355
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/267100
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2022-11-03 17:06:42 +00:00
Joshua Litt
d61c47fb8f
Revert "[test] Fix some tests for Dart2Wasm."
...
This reverts commit 7f0fa313cc .
Reason for revert: Breaks a VM test
Original change's description:
> [test] Fix some tests for Dart2Wasm.
>
> * bool_from_environment_test is updated with the correct check.
> * env_test is updated to consolidate some of the test cases so that it
> has the correct behavior on all backends.
>
> Change-Id: I1cb2d7f3ddd7042b26eda4fee2616aa47a55bd74
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/267221
> Commit-Queue: Joshua Litt <joshualitt@google.com >
> Reviewed-by: Aske Simon Christensen <askesc@google.com >
TBR=askesc@google.com ,joshualitt@google.com ,dart-scoped@luci-project-accounts.iam.gserviceaccount.com
Change-Id: I338a280f48d362b5b021df58c56fbb3978489932
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/267284
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Srujan Gaddam <srujzs@google.com >
Commit-Queue: Joshua Litt <joshualitt@google.com >
2022-11-02 20:45:57 +00:00
Joshua Litt
7f0fa313cc
[test] Fix some tests for Dart2Wasm.
...
* bool_from_environment_test is updated with the correct check.
* env_test is updated to consolidate some of the test cases so that it
has the correct behavior on all backends.
Change-Id: I1cb2d7f3ddd7042b26eda4fee2616aa47a55bd74
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/267221
Commit-Queue: Joshua Litt <joshualitt@google.com >
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2022-11-02 15:24:28 +00:00
Kallen Tu
cbcf0609d1
[vm] Cast function calls and handlers to avoid dynamic calls vm core library.
...
TEST=With prior tests. No new behaviour besides changing up the tree-shaking for some things due to the removal of dynamic.
Change-Id: Ib8a0fe893bf5ea7069f1eea37ed5c6508661ca38
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265962
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Commit-Queue: Kallen Tu <kallentu@google.com >
2022-11-01 21:09:19 +00:00
Alexander Markov
b591fc9d2c
[tests] Cleanup tests for unsupported --enable-debug-break
...
'--enable-debug-break' VM option is not supported since Dart 2.
This change cleans up obsolete tests for that feature.
Change-Id: I240d319f2c32dc451bb30b0fb85402cccfa1eb23
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/267080
Reviewed-by: Siva Annamalai <asiva@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2022-11-01 20:54:28 +00:00
Konstantin Shcheglov
56dcbe8c8e
Implement field promotion for the analyzer.
...
A field is promotable if it is private and final, and there is no
non-final field or concrete getter with the same name in the same
library. This is the rule the language team has chosen to adopt for
which fields are promotable, because it's sufficient to ensure that
the promotion is sound, and straightforward to specify. A more
complex rule could principle identify more fields that are soundly
promotable.
The rule has a hidden complexity, though: in circumstances where a
concrete class overrides noSuchMethod and implements an interface, if
the interface contains a private getter (or field) and the concrete
class doesn't provide an implementation for it, the compiler will
create a synthetic noSuchMethod forwarder; for soundness, this needs
to block promotion as well.
So the analyzer needs to partially replicate the logic the compiler
uses to determine whether a noSuchMethod forwarder is needed. This is
handled by a new file, field_promotability.dart, which walks the class
hierarchy to determine which private fields and getters are in the
interface of any given class but not in its implementation.
Field promotion is not yet enabled by default; to use it you need to
enable the experiment "inference-update-2".
Bug: https://github.com/dart-lang/language/issues/2020
Change-Id: I5f4ebb6b19626961b9b4c904d69670212668552b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262865
Reviewed-by: Samuel Rawlins <srawlins@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2022-10-30 20:02:49 +00:00
Johnni Winther
41e04fc452
[cfe] Handle non-const records in const constructors
...
The initializer was built in an 'inferred' rather than a 'required'
constant context, meaning that it would be encoded as a declaratively
constant literal instead of a structurally constant literal.
Closes #50132
Change-Id: I58b995d879efd2ec374b711718b63ac8f122bcfc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262349
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com >
2022-10-28 09:55:22 +00:00
Daco Harkes
3d7aacda12
[tests] Migrate away from native
...
Aggregated test results:
Pass -> CompileTimeError (expected CompileTimeError)
bug: https://github.com/dart-lang/sdk/issues/28791
Change-Id: I4de6dc405be0fe4f2acf1a073fa9ab5210e49c68
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/266022
Reviewed-by: Tess Strickland <sstrickl@google.com >
Commit-Queue: Daco Harkes <dacoharkes@google.com >
2022-10-28 09:16:40 +00:00
Sam Rawlins
9896f1c647
Enable the unnamed-libraries experiment by default in 2.19.0
...
TEST=tests/language/library/unnamed_library_test.dart
Bug: https://github.com/dart-lang/language/issues/1073
Change-Id: I1c7fa7b4ee4450e344a7613525765e4ab590cc8c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265381
Reviewed-by: Alexander Aprelev <aam@google.com >
Reviewed-by: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Michael Thomsen <mit@google.com >
Reviewed-by: Leaf Petersen <leafp@google.com >
Commit-Queue: Samuel Rawlins <srawlins@google.com >
2022-10-25 21:10:57 +00:00
Lasse R.H. Nielsen
c13676f2b7
Deprecate FallThroughError.
...
The error has not been thrown since Dart 2.0,
where being able to reach the end of a switch case
became a compile-time error.
TEST=Removes tests depending on discontinued behavior.
Change-Id: I76292e7c73f2b3aaf071bbb290e97db493b75477
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/261860
Reviewed-by: Michael Thomsen <mit@google.com >
Commit-Queue: Lasse Nielsen <lrn@google.com >
Auto-Submit: Lasse Nielsen <lrn@google.com >
Reviewed-by: Brian Quinlan <bquinlan@google.com >
2022-10-25 12:25:35 +00:00
Alexander Aprelev
8c0df46887
[vm] Better implementation of hashCode function.
...
With this cl hashCode function for integers which used to be identity function becomes `uint128_t hash = value * constant; hash ^= hash >> 64; hash ^= hash >> 32; hash &= 0x3fffffff`. Note that the hashCode has to stay the same across platforms(64-bit/32-bit).
This dramatically improves performance of integer HashSet/HashMap lookups when integers differ in higher bits only(see the issue referenced below).
AOT ARM64 benchmarks:
===
WordSolverIdentity -3.630% (-0.9 noise)
BigInt.parse.0064.bits 15.43% (0.9 noise)
BigInt.parse.4096.bits 40.80% (1.6 noise)
BigInt.parse.0256.bits 42.01% (2.3 noise)
BigInt.parse.1024.bits 50.91% (2.6 noise)
IntegerSetLookup.DefaultHashSet 549916% (14727.6 noise)
IntegerSetLookup.DefaultHashSet 597150% (55520.2 noise)
IntegerSetLookup.HashSet 846924% (78126.7 noise)
IntegerSetLookup.HashSet 791864% (107221.1 noise)
===
AOT x64:
===
Havlak -14.25% (-1.7 noise)
DartMicroBench.Int64Div -7.091% (-1.2 noise)
ObjectHash.manual.5 -9.541% (-0.8 noise)
AsyncLiveVars.LiveInt1 4.726% (0.8 noise)
IsolateJson.SendAndExit_Decode1MBx1 9.067% (0.8 noise)
SplayHarderLatency 4.629% (0.9 noise)
TypedDataDuplicate.Float64List.32.loop 35.01% (1.8 noise)
IntegerSetLookup.DefaultHashSet 627996% (124823.6 noise)
IntegerSetLookup.HashSet 1245362% (244705.3 noise)
===
JIT ARM64:
===
IntegerSetLookup.DefaultHashSet_Random 73.80% (1.2 noise)
IntegerSetLookup.DefaultHashSet 344999% (6202.9 noise)
IntegerSetLookup.HashSet 483731% (7845.7 noise)
===
JIT x64:
===
CollectionSieves-Set-removeLoop -6.294% (-0.9 noise)
Utf8Encode.ru.10M 59.11% (0.8 noise)
Utf8Encode.ru.10k 71.62% (0.9 noise)
Utf8Encode.zh.10M 53.93% (0.9 noise)
Utf8Encode.ne.10k 71.34% (0.9 noise)
Utf8Encode.zh.10k 72.52% (0.9 noise)
Utf8Encode.ne.10M 53.17% (0.9 noise)
IntegerSetLookup.HashSet_Random 27.80% (1.1 noise)
String.replaceAll.String.Zero 8.659% (1.2 noise)
IntegerSetLookup.DefaultHashSet_Random 96.20% (1.3 noise)
IntegerSetLookup.HashSet 481037% (18028.8 noise)
IntegerSetLookup.DefaultHashSet 454450% (31501.3 noise)
==
Fixes https://github.com/dart-lang/sdk/issues/48641
TEST=ci
Change-Id: Id982e4aa30cd1d6a63f93c73917a8b921ad464a3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258600
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Alexander Aprelev <aam@google.com >
2022-10-20 20:31:20 +00:00
Paul Berry
d9a5551af9
Front end logic for field promotion.
...
This is the common front end implementation of the new field promotion
feature (https://github.com/dart-lang/language/issues/2020 ).
There is no behavioral change yet unless the user activates field
promotion by enabling the experiment flag `inference-update-2`.
Change-Id: I0d1e0893af862c3af8a0ef4ea10e803606d48d7e
Bug: https://github.com/dart-lang/language/issues/2020
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260451
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2022-10-19 14:53:51 +00:00
Alexander Thomas
0b26f4816b
[testing] Remove --compiler=none from test.py
...
* Use dartk as the default compiler for runtime=vm.
* Status file entries for checking for the `none` compiler now either
use dartk or are deleted.
Tested: Standard CQ and local testing.
Fixes: https://github.com/dart-lang/sdk/issues/50241
Change-Id: I7a08d3e491ae1c82a0348fb66ea7b557398f97e5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/264682
Reviewed-by: Siva Annamalai <asiva@google.com >
Reviewed-by: Lasse Nielsen <lrn@google.com >
Commit-Queue: Alexander Thomas <athom@google.com >
2022-10-19 08:09:58 +00:00
Alexander Markov
d7852e4786
[vm] Account for named record fields which can be named like positional
...
It is allowed to have named fields $N in records unless they conflict
with corresponding positional fields. So when accessing $N fields
dynamically we should look for both positional field and named field.
TEST=language/records/simple/dynamic_field_access_test
Issue: https://github.com/dart-lang/sdk/issues/49719
Change-Id: Id31dcb82e753aeeaeed74d5d07aac556ae08a7b2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/264740
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2022-10-18 21:03:09 +00:00
Ahmed Ashour
c8bda70c66
Remove nbsp
...
Fixes #50202
Change-Id: I67e2f02f49deaf1bd9dc1f32a35310704f4d921b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/264120
Reviewed-by: Lasse Nielsen <lrn@google.com >
Commit-Queue: Alexander Thomas <athom@google.com >
2022-10-17 08:18:49 +00:00
Ahmed Ashour
0b5d908221
[analyzer] NOT_ENOUGH_POSITIONAL_ARGUMENTS
...
To report at the token of the expected positional argument
Fixes #50127
Change-Id: I5eb31c6d354fb15d482c2046f7faaa4505658f4e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262603
Reviewed-by: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2022-10-11 17:56:11 +00:00
Alexander Markov
24b8399086
[tests] Avoid small --optimization-counter-threshold in tests
...
Small --optimization-counter-threshold makes tests very slow,
especially on architectures where kernel service runs from
kernel and not from app-jit snapshot.
TEST=change in tests, *-ia32 bots
Fixes https://github.com/dart-lang/sdk/issues/48627
Change-Id: I63e7e201ef9a0e4f645016c39a5be1819b61822d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/263421
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2022-10-10 21:04:18 +00:00
Jens Johansen
e860cf241b
[parser] Empty record
...
https://github.com/dart-lang/language/pull/2535
Change-Id: I8241119ee858ce39673472056b88c9393799e1a0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262600
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2022-10-06 06:34:58 +00:00
Sam Rawlins
c7fe783d11
Language test for unnamed-libraries
...
Bug: https://github.com/dart-lang/language/issues/1073
Change-Id: I9d57c86c35b5712029c610197e6ad823d34c492e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262580
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Erik Ernst <eernst@google.com >
2022-10-04 16:45:21 +00:00
Alexander Markov
b5061ffae1
[vm] Support dynamic access to record fields in JIT mode
...
TEST=language/records/simple/dynamic_field_access_test
Issue: https://github.com/dart-lang/sdk/issues/49719
Change-Id: I18df67e0bf97944c8e5ef8a71f075b5cd40fec29
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262300
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2022-10-03 21:24:47 +00:00
Nicholas Shahan
da79baa962
[ddc] Fix bug in FutureOr type normalization
...
The correct normalization should only normalize FutureOr<Never>
when Never is non-nullable.
Change-Id: I592f3a4856c219b33a8f1ac8377567a956e1148c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/261000
Commit-Queue: Nicholas Shahan <nshahan@google.com >
Reviewed-by: Mayank Patke <fishythefish@google.com >
Reviewed-by: Erik Ernst <eernst@google.com >
2022-10-03 20:09:38 +00:00
Paul Berry
f388946354
Fix test to account for obfuscation
...
This change generalizes no_such_method_restriction_stack_trace_test so
that it recognizes all circumstances where there is stack obfuscation
(not just Javascript builds).
Fixes test failures on `vm-kernel-precomp-obfuscate-linux-release-x64` bot.
Fixes #50074
Bug: https://github.com/dart-lang/sdk/issues/50074
Change-Id: I53f3eaa6ae3cf3585b3d4c492d80dd1e72ca216b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/261621
Commit-Queue: Paul Berry <paulberry@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2022-09-28 19:24:26 +00:00
Alexander Markov
9c3e52aaf3
[vm] Support record types in special cases of type testing stubs for generic types
...
TEST=language/records/simple/type_checks2_test
Issue: https://github.com/dart-lang/sdk/issues/49719
Change-Id: I9117331d8e985675a8adba1aaa4d50a6b17758f4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/261182
Reviewed-by: Tess Strickland <sstrickl@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2022-09-28 19:01:11 +00:00
Alexander Markov
b860d9ee36
[vm] Support record types and record constants in IL serialization
...
TEST=language/records/simple/constants_and_field_access_test
Issue: https://github.com/dart-lang/sdk/issues/49719
Change-Id: I47b1c300195249d0e07e2adfdeeba0c4e44f5de7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/261480
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2022-09-28 16:41:56 +00:00
Paul Berry
54906759b9
Don't delegate foreign private names to noSuchMethod.
...
If a concrete class implements an interface containing a name that's
private to a different library, any attempt to invoke that name will
result in an exception getting thrown. Previously, such attempts
would result in the call being diverted to noSuchMethod.
This change closes a loophole in Dart's privacy system, and paves the way for
a future implementation of promotion for private final fields (see
https://github.com/dart-lang/language/issues/2020 ).
Bug: https://github.com/dart-lang/sdk/issues/49687
Change-Id: Ie55805e0fc77dc39713761a80a42c28bd0504722
Tested: language tests
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255640
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
Reviewed-by: Lasse Nielsen <lrn@google.com >
2022-09-27 21:20:35 +00:00
Nicholas Shahan
76a4d351b8
[ddc] Add non-null assertions when setting fields
...
!!! NOTE to Google3 rollers:
If this change causes test failures in google3 you can temporarily
set `null_safety_asserts = False` on the failing
`dart_browser_binary` targets until we can fix the mistyped code.
That should allow the test to pass with this change.
Of course feel free to revert this change again if the number of
failures is too high.
Re-land previously reverted change:
https://dart-review.googlesource.com/c/sdk/+/258780
Adds additional tests and more checks to ensure assertions are only
added in libraries that have been migrated to null safety.
Issue: https://github.com/dart-lang/sdk/issues/49918
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259120
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Commit-Queue: Nicholas Shahan <nshahan@google.com >
Change-Id: Idcab0fe49a8dd98cdd73192eabae4439aebe2013
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260070
2022-09-23 01:22:11 +00:00
Alexander Markov
1139ed3373
[vm] Record toString()
...
TEST=language/records/simple/to_string_test
Issue: https://github.com/dart-lang/sdk/issues/49719
Change-Id: I7e55a2486b1d964b24a287ffcf87c40c20f9cfe9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260480
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2022-09-22 21:49:08 +00:00
Alexander Markov
ed593585cc
[vm] Record operator== and hashCode
...
TEST=language/records/simple/equals_and_hashcode_test
TEST=co19/LanguageFeatures/Records/equality_*
Issue: https://github.com/dart-lang/sdk/issues/49719
Change-Id: I63842f980389d63650d00638f1cb1501db88b025
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260442
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2022-09-22 21:24:58 +00:00
Chloe Stefantsova
9f75d4426e
[tests] Split out tests involving Record.empty
...
This is needed because the Record.empty constant isn't implemented
yet, to avoid compile-time errors in tests that don't expect any.
Change-Id: Ic7e61fb285a65a5809979e4c32b632f73f9e2d88
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260107
Reviewed-by: Erik Ernst <eernst@google.com >
Reviewed-by: Bob Nystrom <rnystrom@google.com >
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com >
2022-09-21 08:05:47 +00:00
Oleh Prypin
c0b40136e5
Revert "[ddc] Add non-null assertions when setting fields"
...
This reverts commit c590001ef0 .
Reason for revert: Breaks google3 (b/247639927)
Original change's description:
> [ddc] Add non-null assertions when setting fields
>
> Re-land previously reverted change:
> https://dart-review.googlesource.com/c/sdk/+/258780
>
> Adds additional tests and more checks to ensure assertions are only
> added in libraries that have been migrated to null safety.
>
> Issue: https://github.com/dart-lang/sdk/issues/49918
> Change-Id: If0b9bca9fe0d7db5e15023fe03ccac891af568e8
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259120
> Reviewed-by: Sigmund Cherem <sigmund@google.com >
> Commit-Queue: Nicholas Shahan <nshahan@google.com >
TBR=sigmund@google.com ,nshahan@google.com ,annagrin@google.com
Change-Id: Iee2d33005cbabfacab7fc5c45046c6eeb8e31b01
Issue: https://github.com/dart-lang/sdk/issues/49918
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260106
Reviewed-by: Oleh Prypin <oprypin@google.com >
Reviewed-by: Alexander Thomas <athom@google.com >
Commit-Queue: Sigmund Cherem <sigmund@google.com >
2022-09-20 17:19:38 +00:00
Nicholas Shahan
c590001ef0
[ddc] Add non-null assertions when setting fields
...
Re-land previously reverted change:
https://dart-review.googlesource.com/c/sdk/+/258780
Adds additional tests and more checks to ensure assertions are only
added in libraries that have been migrated to null safety.
Issue: https://github.com/dart-lang/sdk/issues/49918
Change-Id: If0b9bca9fe0d7db5e15023fe03ccac891af568e8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259120
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Commit-Queue: Nicholas Shahan <nshahan@google.com >
2022-09-19 23:39:03 +00:00
Alexander Markov
ae2cebcee9
[vm] runtimeType for record instances and record type equality
...
TEST=language/records/simple/runtime_type_test
Issue: https://github.com/dart-lang/sdk/issues/49719
Change-Id: I031dff68241dfc62ebc3b6350b10ba7d352bab37
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259621
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2022-09-19 22:05:04 +00:00
Chloe Stefantsova
f8ef60a868
Revert "Reland "[cfe,corelib] Add class 'Record' to the core library""
...
This reverts commit 4b6a8f35b9 .
Reason for revert: Breakages in google3.
Original change's description:
> Reland "[cfe,corelib] Add class 'Record' to the core library"
>
> Part of https://github.com/dart-lang/sdk/issues/49713
>
> Change-Id: I56bfca49492d14bb561b32993fd9adfe775b7400
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259583
> Reviewed-by: Johnni Winther <johnniwinther@google.com >
> Reviewed-by: Slava Egorov <vegorov@google.com >
> Commit-Queue: Chloe Stefantsova <cstefantsova@google.com >
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: I61c4db244329615d7d218484cd86601b1c737ba6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259800
Reviewed-by: Slava Egorov <vegorov@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com >
Auto-Submit: Chloe Stefantsova <cstefantsova@google.com >
2022-09-19 13:52:01 +00:00
Ahmed Ashour
5fe480b788
Fix typos
...
Fix #49864
TEST=ci
Change-Id: I9a7e06d604cd0b4f56f2ac229ab3fc9f01cb9d76
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256824
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Lasse Nielsen <lrn@google.com >
Reviewed-by: Liam Appelbe <liama@google.com >
Reviewed-by: Mayank Patke <fishythefish@google.com >
2022-09-16 19:35:00 +00:00
Alexander Markov
aa03b81b81
[vm] Initial implementation of record type checks
...
This change provides baseline implementation of type checks involving
record instances and record types via runtime calls.
TEST=language/records/simple/type_checks_test
Issue: https://github.com/dart-lang/sdk/issues/49719
Change-Id: I2402f3db0a6dadbab477b073ed2b8861d5a172e8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259460
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Tess Strickland <sstrickl@google.com >
2022-09-16 18:05:00 +00:00
Alexander Markov
a98b8f3db3
[vm] Do not omit field setters if field needs null assertion
...
In certain cases, VM can omit field setters for static fields as an
optimization. This change makes sure that setters are not omitted
if static field needs a null assertion.
TEST=language/nnbd/null_assertions/parameter_checks_fields_and_setters_test
(Borrowed from https://dart-review.googlesource.com/c/sdk/+/258220 .)
Fixes https://github.com/dart-lang/sdk/issues/49940
Change-Id: I370bff7ad2d9dddb38c6c1b481684fdda09636ac
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258940
Reviewed-by: Liam Appelbe <liama@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2022-09-16 16:55:10 +00:00
Chloe Stefantsova
4b6a8f35b9
Reland "[cfe,corelib] Add class 'Record' to the core library"
...
Part of https://github.com/dart-lang/sdk/issues/49713
Change-Id: I56bfca49492d14bb561b32993fd9adfe775b7400
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259583
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com >
2022-09-16 11:46:40 +00:00
Alexander Aprelev
d31c741fbb
Revert "[cfe,corelib] Add class 'Record' to the core library"
...
This reverts commit f553f0aad9
Reason for revert: breaks g3 bot
Original change's description:
> [cfe,corelib] Add class 'Record' to the core library
>
> Part of https://github.com/dart-lang/sdk/issues/49713
>
> Change-Id: Ibb0309f97565c0a623f60e588eefcad6759d5ace
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/257066
> Commit-Queue: Chloe Stefantsova <cstefantsova@google.com >
> Reviewed-by: Johnni Winther <johnniwinther@google.com >
> Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
TBR=lrn@google.com ,scheglov@google.com ,cstefantsova@google.com ,johnniwinther@google.com
Change-Id: If386819fc7419a660c692e4187ead4ebf142c68c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259462
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com >
Reviewed-by: Alexander Aprelev <aam@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
Commit-Queue: Alexander Aprelev <aam@google.com >
2022-09-15 17:45:50 +00:00
Chloe Stefantsova
f553f0aad9
[cfe,corelib] Add class 'Record' to the core library
...
Part of https://github.com/dart-lang/sdk/issues/49713
Change-Id: Ibb0309f97565c0a623f60e588eefcad6759d5ace
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/257066
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2022-09-15 11:50:33 +00:00
Alexander Markov
e36a39437c
[vm] Record field access operations
...
TEST=language/records/simple/literals_and_field_access_test
TEST=language/records/simple/constants_and_field_access_test
TEST=language/record_type_test
Issue: https://github.com/dart-lang/sdk/issues/49719
Change-Id: I727b6ced0a70fa4f6513cb7bacce5796404e514c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/257924
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2022-09-12 23:16:26 +00:00
Emmanuel Pellereau
727e792e77
Revert "[ddc] Add non-null assertions when setting fields"
...
This reverts commit 27099c121c .
Reason for revert: Breaks google3 (b/246251728)
Original change's description:
> [ddc] Add non-null assertions when setting fields
>
> Fixes: https://github.com/dart-lang/sdk/issues/49918
> Change-Id: I6dddda878afa504bebebb00a80855bac636f8efd
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258220
> Reviewed-by: Sigmund Cherem <sigmund@google.com >
> Commit-Queue: Nicholas Shahan <nshahan@google.com >
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: I5e3fb1c151a85e11025135b8fc95c65192b33791
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258780
Commit-Queue: Emmanuel Pellereau <emmanuelp@google.com >
Reviewed-by: Emmanuel Pellereau <emmanuelp@google.com >
Reviewed-by: Alexander Thomas <athom@google.com >
2022-09-12 11:21:06 +00:00
Nicholas Shahan
27099c121c
[ddc] Add non-null assertions when setting fields
...
Fixes: https://github.com/dart-lang/sdk/issues/49918
Change-Id: I6dddda878afa504bebebb00a80855bac636f8efd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258220
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Commit-Queue: Nicholas Shahan <nshahan@google.com >
2022-09-09 21:05:25 +00:00
Alexander Markov
438e0ebb35
[vm] Throw error from external functions even if they have a body
...
TEST=language/constructor/external_constructor_test
Fixes https://github.com/dart-lang/sdk/issues/49912
Fixes https://github.com/dart-lang/sdk/issues/28565
Change-Id: If01fd39c3195afe059da46bf26ab5bcf158933a3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258281
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2022-09-09 14:18:34 +00:00
Paul Berry
7eab5ef808
Document and test additional breaking change.
...
Breaking change https://github.com/dart-lang/sdk/issues/49635 had a
slightly larger effect than I previously understood. This change
documents the additional effect and adds a test that would have caught
it.
Bug: https://github.com/dart-lang/sdk/issues/49635
Change-Id: I40e9434a7fb87ff00d71b454239e4cadf197a285
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256880
Reviewed-by: Leaf Petersen <leafp@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2022-09-08 16:05:05 +00:00
Lasse R.H. Nielsen
5642199dd0
Remove uses of : as default value separator in some tests/ directories.
...
Change-Id: I35bb926e53e92fd02e264fb5b14feadf063fb8db
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/257961
Reviewed-by: Michael Thomsen <mit@google.com >
Commit-Queue: Lasse Nielsen <lrn@google.com >
2022-09-07 14:49:17 +00:00
Jens Johansen
cec94a1446
[parser] Empty record types, record types with 1 element
...
This should bring parsing of record types up-to-date with v1.6 of
https://github.com/dart-lang/language/blob/master/working/0546-patterns/records-feature-specification.md
Also fixes https://github.com/dart-lang/sdk/issues/49826
Change-Id: I3737a72ddee49a957bd55f86cc200fb77f23e2a0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256660
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
2022-08-30 11:04:10 +00:00
Jens Johansen
a4352d09e1
[parser] Record literals can be const and one-element only
...
This should bring parsing of record literals up-to-date with v1.6 of
https://github.com/dart-lang/language/blob/master/working/0546-patterns/records-feature-specification.md
Change-Id: If39bb1834137da55ef8bd1923106bbc614ea319b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256461
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2022-08-30 10:54:08 +00:00
Jens Johansen
55307a3471
[tests] Enable record experiment in record tests
...
Change-Id: Idafdab64ff5cd952115bc4c4fde807aaaec18a37
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256204
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
2022-08-25 09:01:30 +00:00