blob: 0d6120861ea771dc30861b89f1c002a00d3301f1 [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:16:40: Error: Inferred type argument 'String' doesn't conform to the bound 'num' of the type variable 'X' on 'A<X> Function<X extends num>(X)'.
// - 'A' is from 'pkg/front_end/testcases/constructor_tearoffs/instantiation.dart'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// A<dynamic> Function(String) test5() => A.foo; // Error.
// ^
//
// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:17:40: Error: Inferred type argument 'String' doesn't conform to the bound 'num' of the type variable 'X' on 'A<X> Function<X extends num>(X)'.
// - 'A' is from 'pkg/front_end/testcases/constructor_tearoffs/instantiation.dart'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// A<dynamic> Function(String) test6() => A.new; // Error.
// ^
//
// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:23:41: Error: Inferred type argument 'String' doesn't conform to the bound 'num' of the type variable 'X' on 'A<X> Function<X extends num>(X)'.
// - 'A' is from 'pkg/front_end/testcases/constructor_tearoffs/instantiation.dart'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// A<dynamic> Function(String) test11() => A.bar; // Error.
// ^
//
import self as self;
import "dart:core" as core;
class A<X extends core::num> extends core::Object {
constructor foo(self::A::X x) self::A<self::A::X>
: super core::Object::•() {}
constructor •(self::A::X x) self::A<self::A::X>
: super core::Object::•() {}
static factory bar<X extends core::num>(self::A::bar::X x) self::A<self::A::bar::X>
return new self::A::•<self::A::bar::X>(x);
}
static method test1() (core::num) self::A<core::num>
return #C2;
static method test2() (core::int) self::A<core::int>
return #C3;
static method test3() (core::num) self::A<core::num>
return #C5;
static method test4() (core::int) self::A<core::int>
return #C6;
static method test5() (core::String) self::A<dynamic>
return #C7;
static method test6() (core::String) self::A<dynamic>
return #C8;
static method test7() (core::num) self::A<dynamic>
return #C2;
static method test8() (core::num) self::A<dynamic>
return #C5;
static method test9() (core::num) self::A<core::num>
return #C10;
static method test10() (core::int) self::A<core::int>
return #C11;
static method test11() (core::String) self::A<dynamic>
return #C12;
static method test12() (core::num) self::A<dynamic>
return #C10;
static method main() dynamic {}
constants {
#C1 = constructor-tearoff self::A::foo
#C2 = instantiation #C1 <core::num>
#C3 = instantiation #C1 <core::int>
#C4 = constructor-tearoff self::A::•
#C5 = instantiation #C4 <core::num>
#C6 = instantiation #C4 <core::int>
#C7 = instantiation #C1 <core::String>
#C8 = instantiation #C4 <core::String>
#C9 = constructor-tearoff self::A::bar
#C10 = instantiation #C9 <core::num>
#C11 = instantiation #C9 <core::int>
#C12 = instantiation #C9 <core::String>
}