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

static method map<T extends core::Object? = dynamic>(() → self::map::T% f1, () → self::map::T% f2) → self::map::T%
  return throw "";
static method id<T extends core::Object? = dynamic>(self::id::T% t) → dynamic
  return t;
static method foo() → Null
  return null;
static method test() → dynamic {
  self::map<Null>(() → Null {}, () → Never => throw "hello");
  self::map<Null>(() → Never => throw "hello", () → Null {});
  () → Null f = () → Null {};
  self::map<Null>(#C1, () → Never => throw "hello");
  self::map<Null>(() → Never => throw "hello", #C1);
  self::map<Null>(() → Null {
    return null;
  }, () → Never => throw "hello");
  self::map<Null>(() → Never => throw "hello", () → Null {
    return null;
  });
  self::id<() → Null>(() → Null {});
}
static method main() → dynamic {}

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