| library; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:12:23: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'. |
| // Try changing type arguments so that they conform to the bounds. |
| // extension E<X extends A<num>> // Error. |
| // ^ |
| // pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to. |
| // class A<X extends int> {} |
| // ^ |
| // |
| // pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:17:25: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'. |
| // Try changing type arguments so that they conform to the bounds. |
| // void bazOfE<Y extends A<num>>() {} // Error. |
| // ^ |
| // pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to. |
| // class A<X extends int> {} |
| // ^ |
| // |
| // pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:8:3: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'. |
| // Try changing type arguments so that they conform to the bounds. |
| // A<num>? fieldOfA; // Error. |
| // ^ |
| // pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to. |
| // class A<X extends int> {} |
| // ^ |
| // |
| // pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:9:10: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'. |
| // Try changing type arguments so that they conform to the bounds. |
| // static A<num>? staticFieldOfA; // Error. |
| // ^ |
| // pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to. |
| // class A<X extends int> {} |
| // ^ |
| // |
| // pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:14:10: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'. |
| // Try changing type arguments so that they conform to the bounds. |
| // static A<num>? fieldOfE; // Error. |
| // ^ |
| // pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to. |
| // class A<X extends int> {} |
| // ^ |
| // |
| // pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:15:3: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'. |
| // Try changing type arguments so that they conform to the bounds. |
| // A<num>? fooOfE() => null; // Error. |
| // ^ |
| // pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to. |
| // class A<X extends int> {} |
| // ^ |
| // |
| // pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:16:15: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'. |
| // Try changing type arguments so that they conform to the bounds. |
| // void barOfE(A<num> a) {} // Error. |
| // ^ |
| // pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to. |
| // class A<X extends int> {} |
| // ^ |
| // |
| import self as self; |
| import "dart:core" as core; |
| |
| class A<X extends core::int> extends core::Object { |
| synthetic constructor •() → self::A<self::A::X> |
| : super core::Object::•() |
| ; |
| } |
| class B extends core::Object { |
| field self::A<core::num>? fieldOfA = null; |
| static field self::A<core::num>? staticFieldOfA = null; |
| synthetic constructor •() → self::B |
| : super core::Object::•() |
| ; |
| } |
| extension E<X extends self::A<core::num>> on self::A<core::int> { |
| static field fieldOfE = self::E|fieldOfE; |
| method fooOfE = self::E|fooOfE; |
| method tearoff fooOfE = self::E|get#fooOfE; |
| method barOfE = self::E|barOfE; |
| method tearoff barOfE = self::E|get#barOfE; |
| method bazOfE = self::E|bazOfE; |
| method tearoff bazOfE = self::E|get#bazOfE; |
| } |
| static field self::A<core::num>? E|fieldOfE; |
| static extension-member method E|fooOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → self::A<core::num>? |
| return null; |
| static extension-member method E|get#fooOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → () → self::A<core::num>? |
| return () → self::A<core::num>? => self::E|fooOfE<self::E|get#fooOfE::X>(#this); |
| static extension-member method E|barOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this, self::A<core::num> a) → void {} |
| static extension-member method E|get#barOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → (self::A<core::num>) → void |
| return (self::A<core::num> a) → void => self::E|barOfE<self::E|get#barOfE::X>(#this, a); |
| static extension-member method E|bazOfE<X extends self::A<core::num>, Y extends self::A<core::num>>(lowered final self::A<core::int> #this) → void {} |
| static extension-member method E|get#bazOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → <Y extends self::A<core::num>>() → void |
| return <Y extends self::A<core::num>>() → void => self::E|bazOfE<self::E|get#bazOfE::X, Y>(#this); |
| static method main() → dynamic {} |