library;
import self as self;
import "dart:core" as core;

abstract class A extends core::Object {
  synthetic constructor •() → void
    ;
  method noSuchMethod(core::Invocation i) → dynamic
    ;
  abstract method foo({core::String bar}) → core::String;
  abstract method hest([core::int fisk]) → core::int;
}
class B extends self::A {
  synthetic constructor •() → void
    ;
  no-such-method-forwarder method foo({core::String bar}) → core::String
    return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withoutType("foo", const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(<core::Symbol, dynamic>{#bar: bar}), false)) as{TypeError} core::String;
  no-such-method-forwarder method hest([core::int fisk]) → core::int
    return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withoutType("hest", const <core::Type>[], core::List::unmodifiable<dynamic>(<dynamic>[fisk]), core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{}), false)) as{TypeError} core::int;
}
static method main() → dynamic
  ;
