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

class C extends core::Object {
  synthetic constructor •() → self::C
    : super core::Object::•()
    ;
  method m<T extends core::Object? = dynamic>(core::int a, {required core::String b = #C1, required self::C::m::T% c = #C1}) → self::C::m::T%
    return throw "";
}
static method test() → dynamic {
  core::double y = new self::C::•().{self::C::m}<core::double>(1, b: "bbb", c: 2.0){(core::int, {required b: core::String, required c: core::double}) → core::double};
}

constants  {
  #C1 = null
}
