library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/issue45660_2.dart:8:22: Error: Inferred type argument 'Null' doesn't conform to the bound 'num' of the type variable 'T' on 'call'.
// Try specifying type arguments explicitly so that they conform to the bounds.
//   extendsNumReturnArg/*<Null>*/(null);
//                      ^
//
// pkg/front_end/testcases/general/issue45660_2.dart:9:22: Error: Inferred type argument 'String' doesn't conform to the bound 'num' of the type variable 'T' on 'call'.
// Try specifying type arguments explicitly so that they conform to the bounds.
//   extendsNumReturnArg/*<String>*/("");
//                      ^
//
import self as self;
import "dart:core" as core;

static field <T extends core::num = dynamic>(T) → T extendsNumReturnArg = <S extends core::num>(S s) → S => s;
static method functionInvocations() → dynamic {
  self::extendsNumReturnArg<Null>(null){(Null) → Null};
  self::extendsNumReturnArg<core::String>(""){(core::String) → core::String};
}
static method main() → dynamic {}
