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 Foo extends core::Object {
  field core::List<core::int> x;
  constructor •([core::List<core::int> x = #C2]) → self::Foo
    : self::Foo::x = x, super core::Object::•()
    ;
  constructor named([core::List<core::int> x = #C2]) → self::Foo
    : self::Foo::x = x, super core::Object::•()
    ;
}
static field ([core::List<core::int>]) → core::String g = ([core::List<core::int> llll = #C2]) → core::String => "hello";
static method f([core::List<core::int> l = #C2]) → void {}
static method main() → dynamic {}

constants  {
  #C1 = 1
  #C2 = <core::int*>[#C1]
}
