blob: fc49d816f2fe12da5bc99f3c28a62e34530f272d [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/bounds_literals.dart:17:4: Error: Type argument 'Object' doesn't conform to the bound 'Class<X>' of the type variable 'X' on 'F'.
// - 'Object' is from 'dart:core'.
// - 'Class' is from 'pkg/front_end/testcases/general/bounds_literals.dart'.
// Try changing type arguments so that they conform to the bounds.
// <F<Object>, F<int>>{}; // Error
// ^
// pkg/front_end/testcases/general/bounds_literals.dart:9:11: Context: This is the type variable whose bound isn't conformed to.
// typedef F<X extends Class<X>> = X;
// ^
//
// pkg/front_end/testcases/general/bounds_literals.dart:17:15: Error: Type argument 'int' doesn't conform to the bound 'Class<X>' of the type variable 'X' on 'F'.
// - 'Class' is from 'pkg/front_end/testcases/general/bounds_literals.dart'.
// Try changing type arguments so that they conform to the bounds.
// <F<Object>, F<int>>{}; // Error
// ^
// pkg/front_end/testcases/general/bounds_literals.dart:9:11: Context: This is the type variable whose bound isn't conformed to.
// typedef F<X extends Class<X>> = X;
// ^
//
// pkg/front_end/testcases/general/bounds_literals.dart:21:4: Error: Type argument 'Object' doesn't conform to the bound 'Class<X>' of the type variable 'X' on 'G'.
// - 'Object' is from 'dart:core'.
// - 'Class' is from 'pkg/front_end/testcases/general/bounds_literals.dart'.
// Try changing type arguments so that they conform to the bounds.
// <G<Object>, G<int>>{}; // Error
// ^
// pkg/front_end/testcases/general/bounds_literals.dart:11:9: Context: This is the type variable whose bound isn't conformed to.
// class G<X extends Class<X>> {}
// ^
//
// pkg/front_end/testcases/general/bounds_literals.dart:21:15: Error: Type argument 'int' doesn't conform to the bound 'Class<X>' of the type variable 'X' on 'G'.
// - 'Class' is from 'pkg/front_end/testcases/general/bounds_literals.dart'.
// Try changing type arguments so that they conform to the bounds.
// <G<Object>, G<int>>{}; // Error
// ^
// pkg/front_end/testcases/general/bounds_literals.dart:11:9: Context: This is the type variable whose bound isn't conformed to.
// class G<X extends Class<X>> {}
// ^
//
// pkg/front_end/testcases/general/bounds_literals.dart:27:4: Error: Type argument 'Object' doesn't conform to the bound 'Class<X>' of the type variable 'X' on 'F'.
// - 'Object' is from 'dart:core'.
// - 'Class' is from 'pkg/front_end/testcases/general/bounds_literals.dart'.
// Try changing type arguments so that they conform to the bounds.
// <F<Object>>{}; // Error
// ^
// pkg/front_end/testcases/general/bounds_literals.dart:9:11: Context: This is the type variable whose bound isn't conformed to.
// typedef F<X extends Class<X>> = X;
// ^
//
// pkg/front_end/testcases/general/bounds_literals.dart:28:4: Error: Type argument 'int' doesn't conform to the bound 'Class<X>' of the type variable 'X' on 'F'.
// - 'Class' is from 'pkg/front_end/testcases/general/bounds_literals.dart'.
// Try changing type arguments so that they conform to the bounds.
// <F<int>>{}; // Error
// ^
// pkg/front_end/testcases/general/bounds_literals.dart:9:11: Context: This is the type variable whose bound isn't conformed to.
// typedef F<X extends Class<X>> = X;
// ^
//
// pkg/front_end/testcases/general/bounds_literals.dart:37:4: Error: Type argument 'Object' doesn't conform to the bound 'Class<X>' of the type variable 'X' on 'G'.
// - 'Object' is from 'dart:core'.
// - 'Class' is from 'pkg/front_end/testcases/general/bounds_literals.dart'.
// Try changing type arguments so that they conform to the bounds.
// <G<Object>>{}; // Error
// ^
// pkg/front_end/testcases/general/bounds_literals.dart:11:9: Context: This is the type variable whose bound isn't conformed to.
// class G<X extends Class<X>> {}
// ^
//
// pkg/front_end/testcases/general/bounds_literals.dart:38:4: Error: Type argument 'int' doesn't conform to the bound 'Class<X>' of the type variable 'X' on 'G'.
// - 'Class' is from 'pkg/front_end/testcases/general/bounds_literals.dart'.
// Try changing type arguments so that they conform to the bounds.
// <G<int>>{}; // Error
// ^
// pkg/front_end/testcases/general/bounds_literals.dart:11:9: Context: This is the type variable whose bound isn't conformed to.
// class G<X extends Class<X>> {}
// ^
//
// pkg/front_end/testcases/general/bounds_literals.dart:46:4: Error: Type argument 'Object' doesn't conform to the bound 'Class<X>' of the type variable 'X' on 'F'.
// - 'Object' is from 'dart:core'.
// - 'Class' is from 'pkg/front_end/testcases/general/bounds_literals.dart'.
// Try changing type arguments so that they conform to the bounds.
// <F<Object>>[]; // Error
// ^
// pkg/front_end/testcases/general/bounds_literals.dart:9:11: Context: This is the type variable whose bound isn't conformed to.
// typedef F<X extends Class<X>> = X;
// ^
//
// pkg/front_end/testcases/general/bounds_literals.dart:47:4: Error: Type argument 'int' doesn't conform to the bound 'Class<X>' of the type variable 'X' on 'F'.
// - 'Class' is from 'pkg/front_end/testcases/general/bounds_literals.dart'.
// Try changing type arguments so that they conform to the bounds.
// <F<int>>[]; // Error
// ^
// pkg/front_end/testcases/general/bounds_literals.dart:9:11: Context: This is the type variable whose bound isn't conformed to.
// typedef F<X extends Class<X>> = X;
// ^
//
// pkg/front_end/testcases/general/bounds_literals.dart:54:4: Error: Type argument 'Object' doesn't conform to the bound 'Class<X>' of the type variable 'X' on 'G'.
// - 'Object' is from 'dart:core'.
// - 'Class' is from 'pkg/front_end/testcases/general/bounds_literals.dart'.
// Try changing type arguments so that they conform to the bounds.
// <G<Object>>[]; // Error
// ^
// pkg/front_end/testcases/general/bounds_literals.dart:11:9: Context: This is the type variable whose bound isn't conformed to.
// class G<X extends Class<X>> {}
// ^
//
// pkg/front_end/testcases/general/bounds_literals.dart:55:4: Error: Type argument 'int' doesn't conform to the bound 'Class<X>' of the type variable 'X' on 'G'.
// - 'Class' is from 'pkg/front_end/testcases/general/bounds_literals.dart'.
// Try changing type arguments so that they conform to the bounds.
// <G<int>>[]; // Error
// ^
// pkg/front_end/testcases/general/bounds_literals.dart:11:9: Context: This is the type variable whose bound isn't conformed to.
// class G<X extends Class<X>> {}
// ^
//
import self as self;
import "dart:core" as core;
import "dart:collection" as col;
typedef F<X extends self::Class<X> = self::Class<dynamic>> = X;
class Class<T extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() self::Class<self::Class::T%>
: super core::Object::•()
;
}
class ConcreteClass extends core::Object implements self::Class<self::ConcreteClass> {
synthetic constructor •() self::ConcreteClass
: super core::Object::•()
;
}
class G<X extends self::Class<self::G::X> = self::Class<dynamic>> extends core::Object {
synthetic constructor •() self::G<self::G::X>
: super core::Object::•()
;
}
static method test() dynamic {
<self::Class<dynamic>, dynamic>{};
<self::Class<dynamic>, self::Class<dynamic>>{};
<self::ConcreteClass, self::Class<self::ConcreteClass>>{};
<core::Object, core::int>{};
<self::G<self::Class<dynamic>>, self::G<self::Class<dynamic>>>{};
<self::G<self::Class<dynamic>>, self::G<self::Class<dynamic>>>{};
<self::G<self::ConcreteClass>, self::G<self::Class<self::ConcreteClass>>>{};
<self::G<core::Object>, self::G<core::int>>{};
block {
final core::Set<self::Class<dynamic>> #t1 = col::LinkedHashSet::•<self::Class<dynamic>>();
} =>#t1;
block {
final core::Set<dynamic> #t2 = col::LinkedHashSet::•<dynamic>();
} =>#t2;
block {
final core::Set<self::Class<dynamic>> #t3 = col::LinkedHashSet::•<self::Class<dynamic>>();
} =>#t3;
block {
final core::Set<self::Class<dynamic>> #t4 = col::LinkedHashSet::•<self::Class<dynamic>>();
} =>#t4;
block {
final core::Set<core::Object> #t5 = col::LinkedHashSet::•<core::Object>();
} =>#t5;
block {
final core::Set<core::int> #t6 = col::LinkedHashSet::•<core::int>();
} =>#t6;
block {
final core::Set<self::ConcreteClass> #t7 = col::LinkedHashSet::•<self::ConcreteClass>();
} =>#t7;
block {
final core::Set<self::Class<self::ConcreteClass>> #t8 = col::LinkedHashSet::•<self::Class<self::ConcreteClass>>();
} =>#t8;
block {
final core::Set<self::G<self::Class<dynamic>>> #t9 = col::LinkedHashSet::•<self::G<self::Class<dynamic>>>();
} =>#t9;
block {
final core::Set<self::G<self::Class<dynamic>>> #t10 = col::LinkedHashSet::•<self::G<self::Class<dynamic>>>();
} =>#t10;
block {
final core::Set<self::G<self::Class<dynamic>>> #t11 = col::LinkedHashSet::•<self::G<self::Class<dynamic>>>();
} =>#t11;
block {
final core::Set<self::G<self::Class<dynamic>>> #t12 = col::LinkedHashSet::•<self::G<self::Class<dynamic>>>();
} =>#t12;
block {
final core::Set<self::G<self::ConcreteClass>> #t13 = col::LinkedHashSet::•<self::G<self::ConcreteClass>>();
} =>#t13;
block {
final core::Set<self::G<self::Class<self::ConcreteClass>>> #t14 = col::LinkedHashSet::•<self::G<self::Class<self::ConcreteClass>>>();
} =>#t14;
block {
final core::Set<self::G<core::Object>> #t15 = col::LinkedHashSet::•<self::G<core::Object>>();
} =>#t15;
block {
final core::Set<self::G<core::int>> #t16 = col::LinkedHashSet::•<self::G<core::int>>();
} =>#t16;
<self::Class<dynamic>>[];
<dynamic>[];
<self::Class<dynamic>>[];
<self::Class<dynamic>>[];
<self::ConcreteClass>[];
<self::Class<self::ConcreteClass>>[];
<core::Object>[];
<core::int>[];
<self::G<self::Class<dynamic>>>[];
<self::G<self::Class<dynamic>>>[];
<self::G<self::Class<dynamic>>>[];
<self::G<self::Class<dynamic>>>[];
<self::G<self::ConcreteClass>>[];
<self::G<self::Class<self::ConcreteClass>>>[];
<self::G<core::Object>>[];
<self::G<core::int>>[];
}
static method main() dynamic {}