library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

typedef Foo<S extends core::Object? = dynamic> = <T extends core::Object? = dynamic>(T%) → S%;
class A extends core::Object {
  field <T extends core::Object? = dynamic>(T%) → core::int f = throw "";
  synthetic constructor •() → self::A
    : super core::Object::•()
    ;
  method test() → void {
    let final core::String #t1 = "hello" in this.{self::A::f}{<T extends core::Object? = dynamic>(T%) → core::int}<core::String>(#t1){(core::String) → core::int};
  }
}
static method foo<T extends core::Object? = dynamic>(self::foo::T% x) → core::int
  return 3;
static method bar() → <T extends core::Object? = dynamic>(T%) → core::int
  return #C1;
static method test1() → void {
  self::bar()<core::String>("hello"){(core::String) → core::int};
}
static method main() → dynamic {}

constants  {
  #C1 = static-tearoff self::foo
}
