blob: ae0e6b04b3d9bd2693e10ad53f837e7b8e97d0d3 [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart:12:9: Error: Generic type 'A' can't be used without type arguments in a type variable bound.
// Try providing type arguments to 'A' here.
// class B<TypeU extends A> {}
// ^^^^^
// pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart:10:16: Context: Bound of this variable references variable 'TypeT' from the same declaration.
// class A<TypeT, TypeS extends TypeT> {}
// ^^^^^
//
// pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart:18:13: Error: Generic type 'A' can't be used without type arguments in a type variable bound.
// Try providing type arguments to 'A' here.
// extension D<TypeU extends A> on int {}
// ^^^^^
// pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart:10:16: Context: Bound of this variable references variable 'TypeT' from the same declaration.
// class A<TypeT, TypeS extends TypeT> {}
// ^^^^^
//
// pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart:22:11: Error: Generic type 'A' can't be used without type arguments in a type variable bound.
// Try providing type arguments to 'A' here.
// typedef F<TypeU extends A> = int;
// ^^^^^
// pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart:10:16: Context: Bound of this variable references variable 'TypeT' from the same declaration.
// class A<TypeT, TypeS extends TypeT> {}
// ^^^^^
//
import self as self;
import "dart:core" as core;
typedef F<unrelated TypeU extends self::A<dynamic, dynamic> = dynamic> = core::int;
typedef G<unrelated TypeV extends self::B<dynamic>> = core::int;
class A<TypeT extends core::Object? = dynamic, TypeS extends self::A::TypeT% = dynamic> extends core::Object {
synthetic constructor •() self::A<self::A::TypeT%, self::A::TypeS%>
: super core::Object::•()
;
}
class B<TypeU extends self::A<dynamic, dynamic> = dynamic> extends core::Object {
synthetic constructor •() self::B<self::B::TypeU>
: super core::Object::•()
;
}
class C<TypeV extends self::B<dynamic>> extends core::Object {
synthetic constructor •() self::C<self::C::TypeV>
: super core::Object::•()
;
}
extension D<TypeU extends self::A<dynamic, dynamic> = dynamic> on core::int {
}
extension E<TypeV extends self::B<dynamic>> on core::int {
}
static field self::C<self::B<dynamic>> c = throw "";
static method main() dynamic {}
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm_shared/lib/integers_patch.dart */ _#F#fromEnvironment#tearOff<unrelated TypeU extends self::A<dynamic, dynamic> = dynamic>(core::String name, {core::int defaultValue = #C1}) → core::int
return core::int::fromEnvironment(name, defaultValue: defaultValue);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm_shared/lib/integers_patch.dart */ _#G#fromEnvironment#tearOff<unrelated TypeV extends self::B<dynamic>>(core::String name, {core::int defaultValue = #C1}) → core::int
return core::int::fromEnvironment(name, defaultValue: defaultValue);
constants {
#C1 = 0
}