blob: d543eaa876fa7b26e822e3a1fd7f1789ffeb6a87 [file] [log] [blame]
library test;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:28:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
// Try changing the type of the parameter, or casting the argument to 'int Function(double, int)'.
// /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
// ^
//
// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
// Try changing the type of the parameter, or casting the argument to 'double Function(int, double)'.
// /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
// ^
//
// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:46:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
// Try changing the type of the parameter, or casting the argument to 'int Function(double, int)'.
// takeIDI(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
// ^
//
// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:47:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
// Try changing the type of the parameter, or casting the argument to 'double Function(int, double)'.
// takeDID(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
// ^
//
// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:86:30: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
// Try changing the type of the parameter, or casting the argument to 'int Function(double, int)'.
// . /*@target=C::m*/ m);
// ^
//
// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:89:30: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
// Try changing the type of the parameter, or casting the argument to 'double Function(int, double)'.
// . /*@target=C::m*/ m);
// ^
//
import self as self;
import "dart:core" as core;
import "dart:math" as math;
class C extends core::Object {
synthetic constructor •() self::C
: super core::Object::•()
;
method m<T extends core::num = core::num>(self::C::m::T x, self::C::m::T y) self::C::m::T
return null;
}
static method test() dynamic {
self::takeIII(math::max<core::int>);
self::takeDDD(math::max<core::double>);
self::takeNNN(math::max<core::num>);
self::takeIDN(math::max<core::num>);
self::takeDIN(math::max<core::num>);
self::takeIIN(math::max<core::int>);
self::takeDDN(math::max<core::double>);
self::takeIIO(math::max<core::int>);
self::takeDDO(math::max<core::double>);
self::takeOOI((math::max<core::Object>) as{TypeError} (core::Object, core::Object) core::int);
self::takeIDI(let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:28:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
Try changing the type of the parameter, or casting the argument to 'int Function(double, int)'.
/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
^" in (math::max<core::num>) as{TypeError} (core::double, core::int) → core::int);
self::takeDID(let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
Try changing the type of the parameter, or casting the argument to 'double Function(int, double)'.
/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
^" in (math::max<core::num>) as{TypeError} (core::int, core::double) → core::double);
self::takeOON((math::max<core::Object>) as{TypeError} (core::Object, core::Object) → core::num);
self::takeOOO((math::max<core::Object>) as{TypeError} (core::Object, core::Object) → core::num);
self::takeIII(math::min<core::int>);
self::takeDDD(math::min<core::double>);
self::takeNNN(math::min<core::num>);
self::takeIDN(math::min<core::num>);
self::takeDIN(math::min<core::num>);
self::takeIIN(math::min<core::int>);
self::takeDDN(math::min<core::double>);
self::takeIIO(math::min<core::int>);
self::takeDDO(math::min<core::double>);
self::takeOOI((math::min<core::Object>) as{TypeError} (core::Object, core::Object) → core::int);
self::takeIDI(let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:46:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
Try changing the type of the parameter, or casting the argument to 'int Function(double, int)'.
takeIDI(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
^" in (math::min<core::num>) as{TypeError} (core::double, core::int) → core::int);
self::takeDID(let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:47:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
Try changing the type of the parameter, or casting the argument to 'double Function(int, double)'.
takeDID(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
^" in (math::min<core::num>) as{TypeError} (core::int, core::double) → core::double);
self::takeOON((math::min<core::Object>) as{TypeError} (core::Object, core::Object) → core::num);
self::takeOOO((math::min<core::Object>) as{TypeError} (core::Object, core::Object) → core::num);
self::takeIII(new self::C::•().{self::C::m}<core::int>);
self::takeDDD(new self::C::•().{self::C::m}<core::double>);
self::takeNNN(new self::C::•().{self::C::m}<core::num>);
self::takeIDN(new self::C::•().{self::C::m}<core::num>);
self::takeDIN(new self::C::•().{self::C::m}<core::num>);
self::takeIIN(new self::C::•().{self::C::m}<core::int>);
self::takeDDN(new self::C::•().{self::C::m}<core::double>);
self::takeIIO(new self::C::•().{self::C::m}<core::int>);
self::takeDDO(new self::C::•().{self::C::m}<core::double>);
self::takeOON((new self::C::•().{self::C::m}<core::Object>) as{TypeError} (core::Object, core::Object) → core::num);
self::takeOOO((new self::C::•().{self::C::m}<core::Object>) as{TypeError} (core::Object, core::Object) → core::num);
self::takeOOI((new self::C::•().{self::C::m}<core::Object>) as{TypeError} (core::Object, core::Object) → core::int);
self::takeIDI(let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:86:30: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
Try changing the type of the parameter, or casting the argument to 'int Function(double, int)'.
. /*@target=C::m*/ m);
^" in (new self::C::•().{self::C::m}<core::num>) as{TypeError} (core::double, core::int) → core::int);
self::takeDID(let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:89:30: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
Try changing the type of the parameter, or casting the argument to 'double Function(int, double)'.
. /*@target=C::m*/ m);
^" in (new self::C::•().{self::C::m}<core::num>) as{TypeError} (core::int, core::double) → core::double);
}
static method takeIII((core::int, core::int) → core::int fn) → void {}
static method takeDDD((core::double, core::double) → core::double fn) → void {}
static method takeIDI((core::double, core::int) → core::int fn) → void {}
static method takeDID((core::int, core::double) → core::double fn) → void {}
static method takeIDN((core::double, core::int) → core::num fn) → void {}
static method takeDIN((core::int, core::double) → core::num fn) → void {}
static method takeIIN((core::int, core::int) → core::num fn) → void {}
static method takeDDN((core::double, core::double) → core::num fn) → void {}
static method takeNNN((core::num, core::num) → core::num fn) → void {}
static method takeOON((core::Object, core::Object) → core::num fn) → void {}
static method takeOOO((core::Object, core::Object) → core::num fn) → void {}
static method takeOOI((core::Object, core::Object) → core::int fn) → void {}
static method takeIIO((core::int, core::int) → core::Object fn) → void {}
static method takeDDO((core::double, core::double) → core::Object fn) → void {}
static method main() → dynamic {}