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

static field core::List<core::int> v = #C1<core::int>(() → core::int {
  return 1;
}){(() → core::int) → core::List<core::int>};
static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
  return core::_GrowableList::_literal1<self::f::T%>(g(){() → self::f::T%});
static method main() → dynamic {
  self::v;
}

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