| library; |
| import self as self; |
| import "dart:core" as core; |
| |
| class W extends core::Object { |
| field core::String native; |
| constructor •() → self::W |
| : self::W::native = "field", super core::Object::•() |
| ; |
| } |
| class X extends core::Object { |
| synthetic constructor •() → self::X |
| : super core::Object::•() |
| ; |
| method native() → core::String |
| return "method"; |
| } |
| abstract class Y1 extends core::Object { |
| synthetic constructor •() → self::Y1 |
| : super core::Object::•() |
| ; |
| abstract get native() → core::String; |
| } |
| class Y2 extends self::Y1 { |
| synthetic constructor •() → self::Y2 |
| : super self::Y1::•() |
| ; |
| @core::override |
| get native() → core::String |
| return "getter"; |
| } |
| class Z extends core::Object { |
| field core::String f = null; |
| synthetic constructor •() → self::Z |
| : super core::Object::•() |
| ; |
| set native(core::String s) → void |
| return this.{self::Z::f} = s; |
| } |
| static method main() → dynamic { |
| core::print(new self::W::•().{self::W::native}); |
| core::print(new self::X::•().{self::X::native}()); |
| core::print(new self::Y2::•().{self::Y2::native}); |
| core::print((let final self::Z #t1 = new self::Z::•() in let final core::String #t2 = #t1.{self::Z::native} = "setter" in #t1).{self::Z::f}); |
| } |