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

class Foo<T extends core::Pattern> extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
  method method<generic-covariant-impl generic-covariant-interface U extends self::Foo::T>(self::Foo::method::U u) → self::Foo::method::U
    return u;
}
static method main() → dynamic {
  new self::Foo::•<core::String>().{self::Foo::method}<core::int>(42);
}
