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

typedef Function2<contravariant S extends core::Object? = dynamic, T extends core::Object? = dynamic> = (S%) → T%;
class A<T extends core::Object? = dynamic> extends core::Object {
  covariant-by-class field (self::A::T%) → self::A::T% x;
  constructor •((self::A::T%) → self::A::T% x) → self::A<self::A::T%>
    : self::A::x = x, super core::Object::•()
    ;
}
static method main() → void {
  {
    core::String x = "hello";
    core::int y = 3;
    function f(core::List<core::Map<core::int, core::String>> l) → void {}
    ;
    f(core::_GrowableList::_literal1<core::Map<core::int, core::String>>(<core::int, core::String>{y: x})){(core::List<core::Map<core::int, core::String>>) → void};
  }
  {
    function f(core::int x) → core::int
      return 0;
    self::A<core::int> a = new self::A::•<core::int>(f);
  }
}
