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

class C extends core::Object {
  synthetic constructor •() → self::C
    : super core::Object::•()
    ;
  method f<T extends core::Object? = dynamic>(() → self::C::f::T% g) → core::List<self::C::f::T%>
    return <self::C::f::T%>[g(){() → self::C::f::T%}];
}
static method main() → dynamic {
  core::List<dynamic> v = new self::C::•().{self::C::f}<dynamic>(() → core::int {
    return 1;
  }){(() → dynamic) → core::List<dynamic>};
}
