blob: 6313c0dd1c2756eb868c3e26811865b253d7af60 [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
synthetic constructor •() self::A*
: super core::Object::•()
;
method noSuchMethod(core::Invocation* i) dynamic {
if(i.memberName.==(#C1)) {
return i.namedArguments.[](#C2);
}
else
if(i.memberName.==(#C3)) {
return i.positionalArguments.[](0);
}
return null;
}
abstract method foo({core::String* bar = #C4}) → core::String*;
abstract method hest([core::int* fisk = #C5]) → core::int*;
}
class B extends self::A {
synthetic constructor •() self::B*
: super self::A::•()
;
no-such-method-forwarder method foo({core::String* bar = #C4}) → core::String*
return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C6, #C7, core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C2: bar}))) as{TypeError} core::String*;
no-such-method-forwarder method hest([core::int* fisk = #C5]) → core::int*
return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#C3, 0, #C6, core::List::unmodifiable<dynamic>(<dynamic>[fisk]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C8))) as{TypeError} core::int*;
}
static method main() dynamic {
self::B* b = new self::B::•();
dynamic value;
if(!(value = b.foo()).==("baz")) {
throw "Unexpected value: '${value}'; expected 'baz'.";
}
if(!(value = b.hest()).==(42)) {
throw "Unexpected value: '${value}'; expected '42'.";
}
}
constants {
#C1 = #foo
#C2 = #bar
#C3 = #hest
#C4 = "baz"
#C5 = 42
#C6 = <core::Type*>[]
#C7 = <dynamic>[]
#C8 = core::_ImmutableMap<core::Symbol*, dynamic> {_kvPairs:#C7}
}