Files
sdk/pkg/front_end/testcases/nnbd/nullable_setter.dart.strong.expect
T
Johnni Winther 3d19493f2d [cfe] Add flag to identify lowered locals
+ add predicate helpers to identify these and extract their
original names.

TEST=pkg/front_end/test/predicates/predicate_test.dart

Change-Id: I4d94c575d010b6b01c985eaf5392b9e0e979d044
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175250
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2020-12-08 14:53:14 +00:00

35 lines
1.6 KiB
Plaintext

library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
field core::String m = "";
synthetic constructor •() → self::C
: super core::Object::•()
;
set setter(core::String v) → void {}
operator []=(core::int index, core::String value) → void {}
}
extension _extension#0 on self::C? {
operator []= = self::_extension#0|[]=;
set setter = self::_extension#0|set#setter;
}
static method _extension#0|set#setter(lowered final self::C? #this, core::String v) → void {
let final self::C? #t1 = #this in #t1.{core::Object::==}(null) ?{core::String?} null : #t1{self::C}.{self::C::m} = v;
}
static method _extension#0|[]=(lowered final self::C? #this, core::int index, core::String value) → void {
let final self::C? #t2 = #this in #t2.{core::Object::==}(null) ?{core::String?} null : #t2{self::C}.{self::C::m} = "${index}${value}";
}
static method main() → dynamic {
self::C? c = new self::C::•() as{ForNonNullableByDefault} self::C?;
self::expect("", let final self::C? #t3 = c in #t3.{core::Object::==}(null) ?{core::String?} null : #t3{self::C}.{self::C::m});
self::_extension#0|set#setter(c, "42");
self::expect("42", let final self::C? #t4 = c in #t4.{core::Object::==}(null) ?{core::String?} null : #t4{self::C}.{self::C::m});
self::_extension#0|[]=(c, 42, "87");
self::expect("4287", let final self::C? #t5 = c in #t5.{core::Object::==}(null) ?{core::String?} null : #t5{self::C}.{self::C::m});
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!expected.{core::Object::==}(actual))
throw "Expected ${expected}, actual ${actual}";
}