| library; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/variance/getter.dart:8:11: Error: Can't use 'in' type variable 'T' in an 'out' position. |
| // final T a = throw "uncalled"; // Error |
| // ^ |
| // pkg/front_end/testcases/variance/getter.dart:7:12: Context: This is the type variable whose bound isn't conformed to. |
| // class A<in T> { |
| // ^ |
| // |
| // pkg/front_end/testcases/variance/getter.dart:9:22: Error: Can't use 'in' type variable 'T' in an 'out' position. |
| // final T Function() b = () => throw "uncalled"; // Error |
| // ^ |
| // pkg/front_end/testcases/variance/getter.dart:7:12: Context: This is the type variable whose bound isn't conformed to. |
| // class A<in T> { |
| // ^ |
| // |
| // pkg/front_end/testcases/variance/getter.dart:10:9: Error: Can't use 'in' type variable 'T' in an 'out' position in the return type. |
| // T get c => throw "uncalled"; // Error |
| // ^ |
| // pkg/front_end/testcases/variance/getter.dart:7:12: Context: This is the type variable whose bound isn't conformed to. |
| // class A<in T> { |
| // ^ |
| // |
| // pkg/front_end/testcases/variance/getter.dart:11:10: Error: Can't use 'in' type variable 'T' in an 'out' position. |
| // late T d; // Error |
| // ^ |
| // pkg/front_end/testcases/variance/getter.dart:7:12: Context: This is the type variable whose bound isn't conformed to. |
| // class A<in T> { |
| // ^ |
| // |
| // pkg/front_end/testcases/variance/getter.dart:12:20: Error: Can't use 'in' type variable 'T' in an 'out' position. |
| // covariant late T e; // Error |
| // ^ |
| // pkg/front_end/testcases/variance/getter.dart:7:12: Context: This is the type variable whose bound isn't conformed to. |
| // class A<in T> { |
| // ^ |
| // |
| // pkg/front_end/testcases/variance/getter.dart:13:6: Error: Can't use 'in' type variable 'T' in an 'out' position. |
| // T? f = null; // Error |
| // ^ |
| // pkg/front_end/testcases/variance/getter.dart:7:12: Context: This is the type variable whose bound isn't conformed to. |
| // class A<in T> { |
| // ^ |
| // |
| // pkg/front_end/testcases/variance/getter.dart:17:11: Error: Can't use 'in' type variable 'T' in an 'out' position. |
| // final T a = throw "uncalled"; // Error |
| // ^ |
| // pkg/front_end/testcases/variance/getter.dart:16:17: Context: This is the type variable whose bound isn't conformed to. |
| // mixin BMixin<in T> { |
| // ^ |
| // |
| // pkg/front_end/testcases/variance/getter.dart:18:22: Error: Can't use 'in' type variable 'T' in an 'out' position. |
| // final T Function() b = () => throw "uncalled"; // Error |
| // ^ |
| // pkg/front_end/testcases/variance/getter.dart:16:17: Context: This is the type variable whose bound isn't conformed to. |
| // mixin BMixin<in T> { |
| // ^ |
| // |
| // pkg/front_end/testcases/variance/getter.dart:19:9: Error: Can't use 'in' type variable 'T' in an 'out' position in the return type. |
| // T get c => throw "uncalled"; // Error |
| // ^ |
| // pkg/front_end/testcases/variance/getter.dart:16:17: Context: This is the type variable whose bound isn't conformed to. |
| // mixin BMixin<in T> { |
| // ^ |
| // |
| // pkg/front_end/testcases/variance/getter.dart:20:10: Error: Can't use 'in' type variable 'T' in an 'out' position. |
| // late T d; // Error |
| // ^ |
| // pkg/front_end/testcases/variance/getter.dart:16:17: Context: This is the type variable whose bound isn't conformed to. |
| // mixin BMixin<in T> { |
| // ^ |
| // |
| // pkg/front_end/testcases/variance/getter.dart:21:20: Error: Can't use 'in' type variable 'T' in an 'out' position. |
| // covariant late T e; // Error |
| // ^ |
| // pkg/front_end/testcases/variance/getter.dart:16:17: Context: This is the type variable whose bound isn't conformed to. |
| // mixin BMixin<in T> { |
| // ^ |
| // |
| // pkg/front_end/testcases/variance/getter.dart:22:6: Error: Can't use 'in' type variable 'T' in an 'out' position. |
| // T? f = null; // Error |
| // ^ |
| // pkg/front_end/testcases/variance/getter.dart:16:17: Context: This is the type variable whose bound isn't conformed to. |
| // mixin BMixin<in T> { |
| // ^ |
| // |
| // pkg/front_end/testcases/variance/getter.dart:26:9: Error: Can't use 'in' type variable 'T' in an 'out' position in the return type. |
| // T get a; // Error |
| // ^ |
| // pkg/front_end/testcases/variance/getter.dart:25:21: Context: This is the type variable whose bound isn't conformed to. |
| // abstract class C<in T> { |
| // ^ |
| // |
| // pkg/front_end/testcases/variance/getter.dart:30:7: Error: Can't use 'in' type variable 'T' in an 'out' position. |
| // var a; // Error |
| // ^ |
| // pkg/front_end/testcases/variance/getter.dart:29:12: Context: This is the type variable whose bound isn't conformed to. |
| // class D<in T> extends C<T> { |
| // ^ |
| // |
| // pkg/front_end/testcases/variance/getter.dart:30:7: Error: Field 'a' should be initialized because its type 'T' doesn't allow null. |
| // var a; // Error |
| // ^ |
| // |
| import self as self; |
| import "dart:core" as core; |
| |
| class A<contravariant T extends core::Object? = dynamic> extends core::Object { |
| final field self::A::T% a = throw "uncalled"; |
| final field () → self::A::T% b = () → Never => throw "uncalled"; |
| late field self::A::T% d; |
| late covariant-by-declaration field self::A::T% e; |
| field self::A::T? f = null; |
| synthetic constructor •() → self::A<self::A::T%> |
| : super core::Object::•() |
| ; |
| get c() → self::A::T% |
| return throw "uncalled"; |
| } |
| abstract class BMixin<contravariant T extends core::Object? = dynamic> extends core::Object /*isMixinDeclaration*/ { |
| final field self::BMixin::T% a = throw "uncalled"; |
| final field () → self::BMixin::T% b = () → Never => throw "uncalled"; |
| late field self::BMixin::T% d; |
| late covariant-by-declaration field self::BMixin::T% e; |
| field self::BMixin::T? f = null; |
| get c() → self::BMixin::T% |
| return throw "uncalled"; |
| } |
| abstract class C<contravariant T extends core::Object? = dynamic> extends core::Object { |
| synthetic constructor •() → self::C<self::C::T%> |
| : super core::Object::•() |
| ; |
| abstract get a() → self::C::T%; |
| } |
| class D<contravariant T extends core::Object? = dynamic> extends self::C<self::D::T%> { |
| field self::D::T% a = null; |
| synthetic constructor •() → self::D<self::D::T%> |
| : super self::C::•() |
| ; |
| } |