|
| 1 | +library /*isNonNullableByDefault*/; |
| 2 | +import self as self; |
| 3 | +import "dart:core" as core; |
| 4 | + |
| 5 | +class C extends core::Object { |
| 6 | + field core::String m = ""; |
| 7 | + synthetic constructor •() → self::C |
| 8 | + : super core::Object::•() |
| 9 | + ; |
| 10 | + set setter(core::String v) → void {} |
| 11 | + operator []=(core::int index, core::String value) → void {} |
| 12 | +} |
| 13 | +extension _extension#0 on self::C? { |
| 14 | + operator []= = self::_extension#0|[]=; |
| 15 | + set setter = self::_extension#0|set#setter; |
| 16 | +} |
| 17 | +static method _extension#0|set#setter(final self::C? #this, core::String v) → void { |
| 18 | + let final self::C? #t1 = #this in #t1.{core::Object::==}(null) ?{core::String?} null : #t1{self::C}.{self::C::m} = v; |
| 19 | +} |
| 20 | +static method _extension#0|[]=(final self::C? #this, core::int index, core::String value) → void { |
| 21 | + let final self::C? #t2 = #this in #t2.{core::Object::==}(null) ?{core::String?} null : #t2{self::C}.{self::C::m} = "${index}${value}"; |
| 22 | +} |
| 23 | +static method main() → dynamic { |
| 24 | + self::C? c = new self::C::•(); |
| 25 | + self::expect("", let final self::C? #t3 = c in #t3.{core::Object::==}(null) ?{core::String?} null : #t3{self::C}.{self::C::m}); |
| 26 | + self::_extension#0|set#setter(c, "42"); |
| 27 | + self::expect("42", let final self::C? #t4 = c in #t4.{core::Object::==}(null) ?{core::String?} null : #t4{self::C}.{self::C::m}); |
| 28 | + self::_extension#0|[]=(c, 42, "87"); |
| 29 | + self::expect("4287", let final self::C? #t5 = c in #t5.{core::Object::==}(null) ?{core::String?} null : #t5{self::C}.{self::C::m}); |
| 30 | +} |
| 31 | +static method expect(dynamic expected, dynamic actual) → dynamic { |
| 32 | + if(!expected.{core::Object::==}(actual)) |
| 33 | + throw "Expected ${expected}, actual ${actual}"; |
| 34 | +} |
0 commit comments