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

class A<T extends core::Object> extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
}
static method main() → dynamic {
  dynamic a = throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#, 32, null, <dynamic>[42].toList(growable: false), <dynamic, dynamic>{}));
}
