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:
Mayank Patke 2022-05-10 22:56:23 +00:00 committed by Commit Bot
parent e5498bcd40
commit 34ebfc6594
2 changed files with 42 additions and 0 deletions

View 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;

View 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);
}