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

typedef F = <T extends core::Object? = dynamic>(T%) → void;
typedef G<@#C1 contravariant T extends core::Object? = dynamic> = (T%) → void;
class A<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
  const constructor •() → self::A<self::A::T%>
    : super core::Object::•()
    ;
}
class Class<T extends <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
  synthetic constructor •() → self::Class<self::Class::T>
    : super core::Object::•()
    ;
}
static field <T extends core::Object? = dynamic>(T%) →? void f;
static method method1<@#C2 T extends core::Object? = dynamic>(self::method1::T% t) → void {}
static method method2(<T extends core::Object? = dynamic>(T%) → void f) → void {}
static method main() → dynamic {
  function local<@#C3 T extends core::Object? = dynamic>(T% t) → void {}
  <T extends core::Object? = dynamic>(T%) →? void f;
}

constants  {
  #C1 = self::A<dynamic> {}
  #C2 = self::A<core::String> {}
  #C3 = self::A<core::double> {}
}


Constructor coverage from constants:
org-dartlang-testcase:///function_type_parameter.dart:
- A. (from org-dartlang-testcase:///function_type_parameter.dart:6:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
