blob: b10198f085b78b8eed8801621a9938ac049ebff5 [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;
import "dart: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(#C1<core::int*>);
self::takeDDD(#C1<core::double*>);
self::takeNNN(#C1<core::num*>);
self::takeIDN(#C1<core::num*>);
self::takeDIN(#C1<core::num*>);
self::takeIIN(#C1<core::int*>);
self::takeDDN(#C1<core::double*>);
self::takeIIO(#C1<core::int*>);
self::takeDDO(#C1<core::double*>);
self::takeOOI((#C1<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 (#C1<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 (#C1<core::num*>) as{TypeError} (core::int*, core::double*) →* core::double*);
self::takeOON((#C1<core::Object*>) as{TypeError} (core::Object*, core::Object*) →* core::num*);
self::takeOOO((#C1<core::Object*>) as{TypeError} (core::Object*, core::Object*) →* core::num*);
self::takeIII(#C2<core::int*>);
self::takeDDD(#C2<core::double*>);
self::takeNNN(#C2<core::num*>);
self::takeIDN(#C2<core::num*>);
self::takeDIN(#C2<core::num*>);
self::takeIIN(#C2<core::int*>);
self::takeDDN(#C2<core::double*>);
self::takeIIO(#C2<core::int*>);
self::takeDDO(#C2<core::double*>);
self::takeOOI((#C2<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 (#C2<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 (#C2<core::num*>) as{TypeError} (core::int*, core::double*) →* core::double*);
self::takeOON((#C2<core::Object*>) as{TypeError} (core::Object*, core::Object*) →* core::num*);
self::takeOOO((#C2<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 {}
constants {
#C1 = tearoff math::max
#C2 = tearoff math::min
}