| library; |
| import self as self; |
| import "dart:core" as core; |
| |
| class A extends core::Object { |
| synthetic constructor •() → self::A |
| : super core::Object::•() |
| ; |
| get g() → core::String? |
| return "g"; |
| } |
| class C extends core::Object implements self::A { |
| synthetic constructor •() → self::C |
| : super core::Object::•() |
| ; |
| method noSuchMethod(core::Invocation i) → dynamic { |
| self::console = "C"; |
| } |
| no-such-method-forwarder get g() → core::String? |
| return this.{self::C::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol, dynamic>(#C4))){(core::Invocation) → dynamic} as{TypeError,ForDynamic} core::String?; |
| } |
| abstract class M extends self::A /*isMixinDeclaration*/ { |
| method test() → dynamic { |
| super.{self::A::g}; |
| } |
| method noSuchMethod(core::Invocation i) → dynamic { |
| self::console = "M"; |
| } |
| } |
| abstract class _MA&C&M extends self::C implements self::M /*isAnonymousMixin,isEliminatedMixin*/ { |
| synthetic constructor •() → self::_MA&C&M |
| : super self::C::•() |
| ; |
| method noSuchMethod(core::Invocation i) → dynamic { |
| self::console = "M"; |
| } |
| method test() → dynamic { |
| super.{self::A::g}; |
| } |
| } |
| class MA extends self::_MA&C&M { |
| synthetic constructor •() → self::MA |
| : super self::_MA&C&M::•() |
| ; |
| } |
| static field core::String console = ""; |
| static method main() → dynamic { |
| new self::MA::•().{self::C::g}{core::String?}; |
| self::expect("M", self::console); |
| new self::MA::•().{self::_MA&C&M::test}(){() → dynamic}; |
| self::expect("M", self::console); |
| } |
| static method expect(dynamic expected, dynamic actual) → dynamic { |
| if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual)) |
| throw "Expected ${expected}, actual ${actual}"; |
| } |
| |
| constants { |
| #C1 = #g |
| #C2 = <core::Type>[] |
| #C3 = <dynamic>[] |
| #C4 = <core::Symbol, dynamic>{} |
| } |