| library #lib; |
| import self as self; |
| import "dart:core" as core; |
| import "dart:_internal" as _in; |
| |
| class T1 extends core::Object { |
| synthetic constructor •() → self::T1* |
| : super core::Object::•() |
| ; |
| } |
| class T2 extends core::Object { |
| synthetic constructor •() → self::T2* |
| : super core::Object::•() |
| ; |
| } |
| class T4 extends core::Object { |
| synthetic constructor •() → self::T4* |
| : super core::Object::•() |
| ; |
| } |
| class T5 extends core::Object { |
| synthetic constructor •() → self::T5* |
| : super core::Object::•() |
| ; |
| } |
| class T6 extends core::Object { |
| synthetic constructor •() → self::T6* |
| : super core::Object::•() |
| ; |
| } |
| class T7 extends core::Object { |
| synthetic constructor •() → self::T7* |
| : super core::Object::•() |
| ; |
| } |
| abstract class A extends core::Object { |
| synthetic constructor •() → self::A* |
| : super core::Object::•() |
| ; |
| abstract method foo() → dynamic; |
| abstract get bar() → dynamic; |
| abstract method bazz(dynamic a1, dynamic a2, dynamic a3, [dynamic a4 = #C1, dynamic a5 = #C1]) → dynamic; |
| } |
| class B extends self::A { |
| synthetic constructor •() → self::B* |
| : super self::A::•() |
| ; |
| [@vm.procedure-attributes.metadata=hasDynamicUses:false,hasTearOffUses:false] method noSuchMethod(core::Invocation* invocation) → dynamic { |
| return new self::T1::•(); |
| } |
| no-such-method-forwarder get bar() → dynamic |
| return _in::unsafeCast<dynamic>([@vm.direct-call.metadata=#lib::B::noSuchMethod] [@vm.inferred-type.metadata=#lib::T1 (skip check)] this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 1, #C3, #C4, [@vm.inferred-type.metadata=dart.collection::UnmodifiableMapView<dart.core::Symbol*, dynamic>] core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)))); |
| [@vm.procedure-attributes.metadata=hasDynamicUses:false,hasThisUses:false,hasTearOffUses:false] no-such-method-forwarder method foo() → dynamic |
| return _in::unsafeCast<dynamic>([@vm.direct-call.metadata=#lib::B::noSuchMethod] [@vm.inferred-type.metadata=#lib::T1 (skip check)] this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C6, 0, #C3, #C4, [@vm.inferred-type.metadata=dart.collection::UnmodifiableMapView<dart.core::Symbol*, dynamic>] core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)))); |
| [@vm.procedure-attributes.metadata=hasDynamicUses:false,hasThisUses:false,hasTearOffUses:false] no-such-method-forwarder method bazz([@vm.inferred-type.metadata=dart.core::_Smi] dynamic a1, [@vm.inferred-type.metadata=dart.core::_Smi] dynamic a2, [@vm.inferred-type.metadata=dart.core::_Smi] dynamic a3, [[@vm.inferred-type.metadata=dart.core::_Smi] dynamic a4 = #C1, [@vm.inferred-type.metadata=dart.core::Null?] dynamic a5 = #C1]) → dynamic |
| return _in::unsafeCast<dynamic>([@vm.direct-call.metadata=#lib::B::noSuchMethod] [@vm.inferred-type.metadata=#lib::T1 (skip check)] this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[a1, a2, a3, a4, a5]), [@vm.inferred-type.metadata=dart.collection::UnmodifiableMapView<dart.core::Symbol*, dynamic>] core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)))); |
| } |
| abstract class C extends core::Object { |
| synthetic constructor •() → self::C* |
| : super core::Object::•() |
| ; |
| [@vm.procedure-attributes.metadata=hasDynamicUses:false,hasTearOffUses:false] method noSuchMethod(core::Invocation* invocation) → dynamic { |
| return new self::T2::•(); |
| } |
| } |
| class D extends self::C implements self::A { |
| synthetic constructor •() → self::D* |
| : super self::C::•() |
| ; |
| no-such-method-forwarder get bar() → dynamic |
| return _in::unsafeCast<dynamic>([@vm.direct-call.metadata=#lib::C::noSuchMethod] [@vm.inferred-type.metadata=#lib::T2 (skip check)] this.{self::C::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 1, #C3, #C4, [@vm.inferred-type.metadata=dart.collection::UnmodifiableMapView<dart.core::Symbol*, dynamic>] core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)))); |
| [@vm.procedure-attributes.metadata=hasDynamicUses:false,hasThisUses:false,hasTearOffUses:false] no-such-method-forwarder method foo() → dynamic |
| return _in::unsafeCast<dynamic>([@vm.direct-call.metadata=#lib::C::noSuchMethod] [@vm.inferred-type.metadata=#lib::T2 (skip check)] this.{self::C::noSuchMethod}(new core::_InvocationMirror::_withType(#C6, 0, #C3, #C4, [@vm.inferred-type.metadata=dart.collection::UnmodifiableMapView<dart.core::Symbol*, dynamic>] core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)))); |
| [@vm.procedure-attributes.metadata=hasDynamicUses:false,hasThisUses:false,hasTearOffUses:false] no-such-method-forwarder method bazz([@vm.inferred-type.metadata=dart.core::_Smi] dynamic a1, [@vm.inferred-type.metadata=dart.core::_Smi] dynamic a2, [@vm.inferred-type.metadata=dart.core::_Smi] dynamic a3, [[@vm.inferred-type.metadata=dart.core::_Smi] dynamic a4 = #C1, [@vm.inferred-type.metadata=dart.core::Null?] dynamic a5 = #C1]) → dynamic |
| return _in::unsafeCast<dynamic>([@vm.direct-call.metadata=#lib::C::noSuchMethod] [@vm.inferred-type.metadata=#lib::T2 (skip check)] this.{self::C::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[a1, a2, a3, a4, a5]), [@vm.inferred-type.metadata=dart.collection::UnmodifiableMapView<dart.core::Symbol*, dynamic>] core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)))); |
| } |
| class E extends core::Object implements self::A { |
| synthetic constructor •() → self::E* |
| : super core::Object::•() |
| ; |
| [@vm.procedure-attributes.metadata=hasDynamicUses:false,hasTearOffUses:false] method noSuchMethod(core::Invocation* invocation) → dynamic { |
| return new self::T4::•(); |
| } |
| no-such-method-forwarder get bar() → dynamic |
| return _in::unsafeCast<dynamic>([@vm.direct-call.metadata=#lib::E::noSuchMethod] [@vm.inferred-type.metadata=#lib::T4 (skip check)] this.{self::E::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 1, #C3, #C4, [@vm.inferred-type.metadata=dart.collection::UnmodifiableMapView<dart.core::Symbol*, dynamic>] core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)))); |
| } |
| class F extends core::Object { |
| synthetic constructor •() → self::F* |
| : super core::Object::•() |
| ; |
| [@vm.procedure-attributes.metadata=hasDynamicUses:false,hasThisUses:false,hasTearOffUses:false] method noSuchMethod(core::Invocation* invocation) → dynamic { |
| return new self::T2::•(); |
| } |
| } |
| class G extends core::Object { |
| synthetic constructor •() → self::G* |
| : super core::Object::•() |
| ; |
| [@vm.procedure-attributes.metadata=hasThisUses:false,hasTearOffUses:false] method noSuchMethod(core::Invocation* invocation) → dynamic { |
| return new self::T5::•(); |
| } |
| } |
| class H extends core::Object { |
| synthetic constructor •() → self::H* |
| : super core::Object::•() |
| ; |
| [@vm.procedure-attributes.metadata=hasThisUses:false,hasTearOffUses:false] method foo({[@vm.inferred-type.metadata=dart.core::_Smi] dynamic left = #C1, [@vm.inferred-type.metadata=dart.core::_Smi] dynamic right = #C1}) → dynamic |
| return new self::T6::•(); |
| [@vm.procedure-attributes.metadata=hasDynamicUses:false,hasThisUses:false,hasTearOffUses:false] method noSuchMethod(core::Invocation* invocation) → dynamic { |
| return new self::T7::•(); |
| } |
| } |
| [@vm.inferred-type.metadata=#lib::B?]static field self::A* bb = new self::B::•(); |
| [@vm.inferred-type.metadata=#lib::D?]static field self::A* dd = new self::D::•(); |
| [@vm.inferred-type.metadata=dart.core::Null?]static field core::Function* unknown; |
| static method getDynamic() → dynamic |
| return [@vm.call-site-attributes.metadata=receiverType:dart.core::Function*] self::unknown.call(); |
| static method main(core::List<core::String*>* args) → dynamic { |
| core::print([@vm.direct-call.metadata=#lib::B::foo??] [@vm.inferred-type.metadata=#lib::T1 (skip check)] [@vm.inferred-type.metadata=#lib::B?] self::bb.{self::A::foo}()); |
| core::print([@vm.direct-call.metadata=#lib::B::bar??] [@vm.inferred-type.metadata=#lib::T1] [@vm.inferred-type.metadata=#lib::B?] self::bb.{self::A::bar}); |
| core::print([@vm.direct-call.metadata=#lib::B::bazz??] [@vm.inferred-type.metadata=#lib::T1 (skip check)] [@vm.inferred-type.metadata=#lib::B?] self::bb.{self::A::bazz}(1, 2, 3, 4)); |
| core::print([@vm.direct-call.metadata=#lib::D::foo??] [@vm.inferred-type.metadata=#lib::T2 (skip check)] [@vm.inferred-type.metadata=#lib::D?] self::dd.{self::A::foo}()); |
| core::print([@vm.direct-call.metadata=#lib::D::bar??] [@vm.inferred-type.metadata=#lib::T2] [@vm.inferred-type.metadata=#lib::D?] self::dd.{self::A::bar}); |
| core::print([@vm.direct-call.metadata=#lib::D::bazz??] [@vm.inferred-type.metadata=#lib::T2 (skip check)] [@vm.inferred-type.metadata=#lib::D?] self::dd.{self::A::bazz}(1, 2, 3, 4)); |
| new self::E::•(); |
| self::A* xx = self::getDynamic() as{TypeError} self::A*; |
| core::print([@vm.inferred-type.metadata=!] xx.{self::A::bar}); |
| dynamic yy = self::getDynamic(); |
| core::print([@vm.inferred-type.metadata=!] yy.twoArg(1, 2, 3)); |
| new self::F::•(); |
| dynamic gg = new self::G::•(); |
| core::print([@vm.inferred-type.metadata=#lib::T5] gg.noSuchMethod(null, null)); |
| dynamic hh = new self::H::•(); |
| core::print([@vm.direct-call.metadata=#lib::H::foo] [@vm.inferred-type.metadata=#lib::T6] hh.foo(right: 2, left: 1)); |
| core::print([@vm.inferred-type.metadata=#lib::T7] hh.foo(left: 1, top: 2)); |
| } |