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

static field core::List<(core::int) → core::Object> v;
static method f(core::int x) → core::int
  ;
static method g(core::int x) → core::String
  ;
static method main() → dynamic
  ;
