mirror of
https://github.com/dart-lang/sdk
synced 2024-09-15 22:19:49 +00:00
[dart2js] Add regression test for https://dart-review.googlesource.com/c/sdk/+/225320
Change-Id: Iff348b9ce13ea249b8c63f8c0952cd446ad5cb7d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/243528 Commit-Queue: Mayank Patke <fishythefish@google.com> Reviewed-by: Sigmund Cherem <sigmund@google.com>
This commit is contained in:
parent
e5498bcd40
commit
34ebfc6594
21
pkg/compiler/test/inference/data/late_field.dart
Normal file
21
pkg/compiler/test/inference/data/late_field.dart
Normal file
|
@ -0,0 +1,21 @@
|
|||
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
import 'package:compiler/src/util/testing.dart';
|
||||
|
||||
/*member: Foo.:[exact=Foo]*/
|
||||
class Foo {
|
||||
/*member: Foo._#Foo#x:[sentinel|exact=JSUInt31]*/
|
||||
/*member: Foo.x:[exact=JSUInt31]*/
|
||||
late int /*[exact=Foo]*/ /*update: [exact=Foo]*/ x = 42;
|
||||
}
|
||||
|
||||
/*member: main:[null]*/
|
||||
void main() {
|
||||
makeLive(test(Foo()));
|
||||
}
|
||||
|
||||
@pragma('dart2js:noInline')
|
||||
/*member: test:[exact=JSUInt31]*/
|
||||
int test(Foo /*[exact=Foo]*/ foo) => foo. /*[exact=Foo]*/ x;
|
21
tests/web/late_no_inlining_test.dart
Normal file
21
tests/web/late_no_inlining_test.dart
Normal file
|
@ -0,0 +1,21 @@
|
|||
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// dart2jsOptions=--disable-inlining
|
||||
|
||||
import 'package:expect/expect.dart';
|
||||
|
||||
// Tests to ensure that narrowing type information does not discard late
|
||||
// sentinel values unintentionally.
|
||||
|
||||
class Foo {
|
||||
late int bar = 42;
|
||||
late final int baz = 1729;
|
||||
}
|
||||
|
||||
void main() {
|
||||
final foo = Foo();
|
||||
Expect.equals(42, foo.bar);
|
||||
Expect.equals(1729, foo.baz);
|
||||
}
|
Loading…
Reference in a new issue