blob: b11dd0c5f2c2a462c1ad8c8b257ad1df3b874560 [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/bounds_enums.dart:11:6: Error: Inferred type argument 'A<dynamic>' doesn't conform to the bound 'Y Function(Y)' of the type variable 'Y' on 'E1'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// enum E1<Y extends A<Y>> /* Error */ {
// ^
// pkg/front_end/testcases/general/bounds_enums.dart:11:9: Context: This is the type variable whose bound isn't conformed to.
// enum E1<Y extends A<Y>> /* Error */ {
// ^
// pkg/front_end/testcases/general/bounds_enums.dart:11:6: Context: If you want 'E1<A<dynamic>>' to be a super-bounded type, note that the inverted type 'E1<A<Never>>' must then satisfy its bounds, which it does not.
// - 'E1' is from 'pkg/front_end/testcases/general/bounds_enums.dart'.
// enum E1<Y extends A<Y>> /* Error */ {
// ^
//
import self as self;
import "dart:core" as core;
typedef A<invariant X extends core::Object? = dynamic> = (X%) X%;
class B<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() self::B<self::B::X%>
: super core::Object::•()
;
}
class E1<Y extends (self::E1::Y) self::E1::Y = (dynamic) dynamic> extends core::_Enum /*isEnum*/ {
static const field core::List<self::E1<(dynamic) dynamic>> values = #C4;
static const field self::E1<Never> e1 = #C3;
const constructor •(core::int #index, core::String #name) → self::E1<self::E1::Y>
: super core::_Enum::•(#index, #name)
;
method toString() core::String
return "E1.${this.{core::_Enum::_name}{core::String}}";
}
class E2<Y extends self::B<self::E2::Y> = self::B<dynamic>> extends core::_Enum /*isEnum*/ {
static const field core::List<self::E2<self::B<dynamic>>> values = #C7;
static const field self::E2<Never> e2 = #C6;
const constructor •(core::int #index, core::String #name) → self::E2<self::E2::Y>
: super core::_Enum::•(#index, #name)
;
method toString() core::String
return "E2.${this.{core::_Enum::_name}{core::String}}";
}
class E3<Y extends self::E3<self::E3::Y> = self::E3<dynamic>> extends core::_Enum /*isEnum*/ {
static const field core::List<self::E3<self::E3<dynamic>>> values = #C10;
static const field self::E3<Never> e3 = #C9;
const constructor •(core::int #index, core::String #name) → self::E3<self::E3::Y>
: super core::_Enum::•(#index, #name)
;
method toString() core::String
return "E3.${this.{core::_Enum::_name}{core::String}}";
}
static method main() dynamic {}
constants {
#C1 = 0
#C2 = "e1"
#C3 = self::E1<Never*> {index:#C1, _name:#C2}
#C4 = <self::E1<dynamic>*>[#C3]
#C5 = "e2"
#C6 = self::E2<Never*> {index:#C1, _name:#C5}
#C7 = <self::E2<dynamic>*>[#C6]
#C8 = "e3"
#C9 = self::E3<Never*> {index:#C1, _name:#C8}
#C10 = <self::E3<dynamic>*>[#C9]
}
Constructor coverage from constants:
org-dartlang-testcase:///bounds_enums.dart:
- E1. (from org-dartlang-testcase:///bounds_enums.dart:11:6)
- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- E2. (from org-dartlang-testcase:///bounds_enums.dart:15:6)
- E3. (from org-dartlang-testcase:///bounds_enums.dart:19:6)