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

typedef ToValue<contravariant T extends core::Object? = dynamic> = (T%) → void;
static method test() → dynamic {
  function f<T extends core::Object? = dynamic>(T% x) → (T%) → void
    return throw "";
  (core::int) → void x = f<core::int>(42){(core::int) → (core::int) → void};
  (core::int) → void y = f<core::int>(42){(core::int) → (core::int) → void};
  (core::int) → void takesInt = x;
  takesInt = y;
}
