3d19493f2d
+ 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>
35 lines
1.6 KiB
Plaintext
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}";
|
|
}
|