blob: d874a65dd3530669e0bca7d27dfb095111affe2c [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/extension_types/issue54097_2.dart:20:23: Error: Type 'Y' is a bound of itself via 'X'.
// Try breaking the cycle by removing at least one of the 'extends' clauses in the cycle.
// class A1<X extends Y, Y extends X> {} // Error.
// ^
//
// pkg/front_end/testcases/extension_types/issue54097_2.dart:21:10: Error: Type 'X' can't use itself as a bound.
// Try breaking the cycle by removing at least one of the 'extends' clauses in the cycle.
// class A2<X extends X> {} // Error.
// ^
//
// pkg/front_end/testcases/extension_types/issue54097_2.dart:22:26: Error: Type 'Z' is a bound of itself via 'Y'.
// Try breaking the cycle by removing at least one of the 'extends' clauses in the cycle.
// class A3<X, Y extends Z, Z extends Y> {} // Error.
// ^
//
// pkg/front_end/testcases/extension_types/issue54097_2.dart:24:12: Error: Type 'X' can't use itself as a bound.
// Try breaking the cycle by removing at least one of the 'extends' clauses in the cycle.
// class AF11<X extends F1<X>> {} // Error.
// ^
//
// pkg/front_end/testcases/extension_types/issue54097_2.dart:25:12: Error: Type 'X' can't use itself as a bound.
// Try breaking the cycle by removing at least one of the 'extends' clauses in the cycle.
// class AF12<X extends F2<X>> {} // Error.
// ^
//
// pkg/front_end/testcases/extension_types/issue54097_2.dart:26:12: Error: Type 'X' can't use itself as a bound.
// Try breaking the cycle by removing at least one of the 'extends' clauses in the cycle.
// class AF13<X extends F3<X>> {} // Error.
// ^
//
// pkg/front_end/testcases/extension_types/issue54097_2.dart:27:12: Error: Type 'X' can't use itself as a bound.
// Try breaking the cycle by removing at least one of the 'extends' clauses in the cycle.
// class AF14<X extends F4<X>> {} // Error.
// ^
//
// pkg/front_end/testcases/extension_types/issue54097_2.dart:28:12: Error: Type 'X' can't use itself as a bound.
// Try breaking the cycle by removing at least one of the 'extends' clauses in the cycle.
// class AF15<X extends F5<X>> {} // Error.
// ^
//
// pkg/front_end/testcases/extension_types/issue54097_2.dart:29:12: Error: Type 'X' can't use itself as a bound.
// Try breaking the cycle by removing at least one of the 'extends' clauses in the cycle.
// class AF16<X extends F6<X>> {} // Error.
// ^
//
// pkg/front_end/testcases/extension_types/issue54097_2.dart:30:12: Error: Type 'X' can't use itself as a bound.
// Try breaking the cycle by removing at least one of the 'extends' clauses in the cycle.
// class AF17<X extends F7<X>> {} // Error.
// ^
//
// pkg/front_end/testcases/extension_types/issue54097_2.dart:31:12: Error: Type 'X' can't use itself as a bound.
// Try breaking the cycle by removing at least one of the 'extends' clauses in the cycle.
// class AE11<X extends E1<X>> {} // Error.
// ^
//
// pkg/front_end/testcases/extension_types/issue54097_2.dart:32:12: Error: Type 'X' can't use itself as a bound.
// Try breaking the cycle by removing at least one of the 'extends' clauses in the cycle.
// class AE12<X extends E2<X>> {} // Error.
// ^
//
// pkg/front_end/testcases/extension_types/issue54097_2.dart:33:12: Error: Type 'X' can't use itself as a bound.
// Try breaking the cycle by removing at least one of the 'extends' clauses in the cycle.
// class AE13<X extends E3<X>> {} // Error.
// ^
//
// pkg/front_end/testcases/extension_types/issue54097_2.dart:34:12: Error: Type 'X' can't use itself as a bound.
// Try breaking the cycle by removing at least one of the 'extends' clauses in the cycle.
// class AE14<X extends E4<X>> {} // Error.
// ^
//
// pkg/front_end/testcases/extension_types/issue54097_2.dart:35:12: Error: Type 'X' can't use itself as a bound.
// Try breaking the cycle by removing at least one of the 'extends' clauses in the cycle.
// class AE15<X extends E5<X>> {} // Error.
// ^
//
// pkg/front_end/testcases/extension_types/issue54097_2.dart:36:12: Error: Type 'X' can't use itself as a bound.
// Try breaking the cycle by removing at least one of the 'extends' clauses in the cycle.
// class AE16<X extends E6<X>> {} // Error.
// ^
//
// pkg/front_end/testcases/extension_types/issue54097_2.dart:37:12: Error: Type 'X' can't use itself as a bound.
// Try breaking the cycle by removing at least one of the 'extends' clauses in the cycle.
// class AE17<X extends E7<X>> {} // Error.
// ^
//
import self as self;
import "dart:core" as core;
typedef F1<X extends core::Object? = dynamic> = X%;
typedef F2<X extends core::Object? = dynamic> = self::E1<X%>% /* erasure=X%, declared=! */;
typedef F3<X extends core::Object? = dynamic> = self::E1<X%>% /* erasure=X%, declared=! */;
typedef F4<X extends core::Object? = dynamic> = self::E1<X%>% /* erasure=X%, declared=! */;
typedef F5<X extends core::Object? = dynamic> = self::E1<X%>% /* erasure=X%, declared=! */;
typedef F6<X extends core::Object? = dynamic> = X%;
typedef F7<X extends core::Object? = dynamic> = self::E1<self::E1<X%>% /* erasure=X%, declared=! */>% /* erasure=X%, declared=! */;
class A1<X extends self::A1::Y% = dynamic, Y extends invalid-type = dynamic> extends core::Object {
synthetic constructor •() self::A1<self::A1::X%, self::A1::Y%>
;
}
class A2<X extends invalid-type = dynamic> extends core::Object {
synthetic constructor •() self::A2<self::A2::X%>
;
}
class A3<X extends core::Object? = dynamic, Y extends self::A3::Z% = dynamic, Z extends invalid-type = dynamic> extends core::Object {
synthetic constructor •() self::A3<self::A3::X%, self::A3::Y%, self::A3::Z%>
;
}
class AF11<X extends invalid-type = dynamic> extends core::Object {
synthetic constructor •() self::AF11<self::AF11::X%>
;
}
class AF12<X extends invalid-type = self::E1<dynamic>% /* erasure=dynamic, declared=! */> extends core::Object {
synthetic constructor •() self::AF12<self::AF12::X%>
;
}
class AF13<X extends invalid-type = self::E1<dynamic>% /* erasure=dynamic, declared=! */> extends core::Object {
synthetic constructor •() self::AF13<self::AF13::X%>
;
}
class AF14<X extends invalid-type = self::E1<dynamic>% /* erasure=dynamic, declared=! */> extends core::Object {
synthetic constructor •() self::AF14<self::AF14::X%>
;
}
class AF15<X extends invalid-type = self::E1<dynamic>% /* erasure=dynamic, declared=! */> extends core::Object {
synthetic constructor •() self::AF15<self::AF15::X%>
;
}
class AF16<X extends invalid-type = dynamic> extends core::Object {
synthetic constructor •() self::AF16<self::AF16::X%>
;
}
class AF17<X extends invalid-type = self::E1<self::E1<dynamic>% /* erasure=dynamic, declared=! */>% /* erasure=dynamic, declared=! */> extends core::Object {
synthetic constructor •() self::AF17<self::AF17::X%>
;
}
class AE11<X extends invalid-type = self::E1<dynamic>% /* erasure=dynamic, declared=! */> extends core::Object {
synthetic constructor •() self::AE11<self::AE11::X%>
;
}
class AE12<X extends invalid-type = self::E2<dynamic>% /* erasure=dynamic, declared=! */> extends core::Object {
synthetic constructor •() self::AE12<self::AE12::X%>
;
}
class AE13<X extends invalid-type = self::E3<dynamic>% /* erasure=dynamic, declared=! */> extends core::Object {
synthetic constructor •() self::AE13<self::AE13::X%>
;
}
class AE14<X extends invalid-type = self::E4<dynamic>% /* erasure=dynamic, declared=! */> extends core::Object {
synthetic constructor •() self::AE14<self::AE14::X%>
;
}
class AE15<X extends invalid-type = self::E5<dynamic>% /* erasure=dynamic, declared=! */> extends core::Object {
synthetic constructor •() self::AE15<self::AE15::X%>
;
}
class AE16<X extends invalid-type = self::E6<dynamic>% /* erasure=dynamic, declared=! */> extends core::Object {
synthetic constructor •() self::AE16<self::AE16::X%>
;
}
class AE17<X extends invalid-type = self::E7<dynamic>% /* erasure=dynamic, declared=! */> extends core::Object {
synthetic constructor •() self::AE17<self::AE17::X%>
;
}
extension type E1<X extends core::Object? = dynamic>(X% it) {
abstract extension-type-member representation-field get it() X%;
constructor = self::E1|constructor#;
constructor tearoff = self::E1|constructor#_#new#tearOff;
}
extension type E2<X extends core::Object? = dynamic>(X% it) {
abstract extension-type-member representation-field get it() X%;
constructor = self::E2|constructor#;
constructor tearoff = self::E2|constructor#_#new#tearOff;
}
extension type E3<X extends core::Object? = dynamic>(self::E1<X%>% /* erasure=X%, declared=! */ it) {
abstract extension-type-member representation-field get it() self::E1<X%>% /* erasure=X%, declared=! */;
constructor = self::E3|constructor#;
constructor tearoff = self::E3|constructor#_#new#tearOff;
}
extension type E4<X extends core::Object? = dynamic>(self::E1<X%>% /* erasure=X%, declared=! */ it) {
abstract extension-type-member representation-field get it() self::E1<X%>% /* erasure=X%, declared=! */;
constructor = self::E4|constructor#;
constructor tearoff = self::E4|constructor#_#new#tearOff;
}
extension type E5<X extends core::Object? = dynamic>(self::E1<self::E1<X%>% /* erasure=X%, declared=! */>% /* erasure=X%, declared=! */ it) {
abstract extension-type-member representation-field get it() self::E1<self::E1<X%>% /* erasure=X%, declared=! */>% /* erasure=X%, declared=! */;
constructor = self::E5|constructor#;
constructor tearoff = self::E5|constructor#_#new#tearOff;
}
extension type E6<X extends core::Object? = dynamic>(self::E1<self::E1<X%>% /* erasure=X%, declared=! */>% /* erasure=X%, declared=! */ it) {
abstract extension-type-member representation-field get it() self::E1<self::E1<X%>% /* erasure=X%, declared=! */>% /* erasure=X%, declared=! */;
constructor = self::E6|constructor#;
constructor tearoff = self::E6|constructor#_#new#tearOff;
}
extension type E7<X extends core::Object? = dynamic>(X% it) {
abstract extension-type-member representation-field get it() X%;
constructor = self::E7|constructor#;
constructor tearoff = self::E7|constructor#_#new#tearOff;
}
static extension-type-member method E1|constructor#<X extends core::Object? = dynamic>(self::E1|constructor#::X% it) → self::E1<self::E1|constructor#::X%>% /* erasure=self::E1|constructor#::X%, declared=! */
;
static extension-type-member method E1|constructor#_#new#tearOff<X extends core::Object? = dynamic>(self::E1|constructor#_#new#tearOff::X% it) → self::E1<self::E1|constructor#_#new#tearOff::X%>% /* erasure=self::E1|constructor#_#new#tearOff::X%, declared=! */
return self::E1|constructor#<self::E1|constructor#_#new#tearOff::X%>(it);
static extension-type-member method E2|constructor#<X extends core::Object? = dynamic>(self::E2|constructor#::X% it) → self::E2<self::E2|constructor#::X%>% /* erasure=self::E2|constructor#::X%, declared=! */
;
static extension-type-member method E2|constructor#_#new#tearOff<X extends core::Object? = dynamic>(self::E2|constructor#_#new#tearOff::X% it) → self::E2<self::E2|constructor#_#new#tearOff::X%>% /* erasure=self::E2|constructor#_#new#tearOff::X%, declared=! */
return self::E2|constructor#<self::E2|constructor#_#new#tearOff::X%>(it);
static extension-type-member method E3|constructor#<X extends core::Object? = dynamic>(self::E1<self::E3|constructor#::X%>% /* erasure=self::E3|constructor#::X%, declared=! */ it) → self::E3<self::E3|constructor#::X%>% /* erasure=self::E3|constructor#::X%, declared=! */
;
static extension-type-member method E3|constructor#_#new#tearOff<X extends core::Object? = dynamic>(self::E1<self::E3|constructor#_#new#tearOff::X%>% /* erasure=self::E3|constructor#_#new#tearOff::X%, declared=! */ it) → self::E3<self::E3|constructor#_#new#tearOff::X%>% /* erasure=self::E3|constructor#_#new#tearOff::X%, declared=! */
return self::E3|constructor#<self::E3|constructor#_#new#tearOff::X%>(it);
static extension-type-member method E4|constructor#<X extends core::Object? = dynamic>(self::E1<self::E4|constructor#::X%>% /* erasure=self::E4|constructor#::X%, declared=! */ it) → self::E4<self::E4|constructor#::X%>% /* erasure=self::E4|constructor#::X%, declared=! */
;
static extension-type-member method E4|constructor#_#new#tearOff<X extends core::Object? = dynamic>(self::E1<self::E4|constructor#_#new#tearOff::X%>% /* erasure=self::E4|constructor#_#new#tearOff::X%, declared=! */ it) → self::E4<self::E4|constructor#_#new#tearOff::X%>% /* erasure=self::E4|constructor#_#new#tearOff::X%, declared=! */
return self::E4|constructor#<self::E4|constructor#_#new#tearOff::X%>(it);
static extension-type-member method E5|constructor#<X extends core::Object? = dynamic>(self::E1<self::E1<self::E5|constructor#::X%>% /* erasure=self::E5|constructor#::X%, declared=! */>% /* erasure=self::E5|constructor#::X%, declared=! */ it) → self::E5<self::E5|constructor#::X%>% /* erasure=self::E5|constructor#::X%, declared=! */
;
static extension-type-member method E5|constructor#_#new#tearOff<X extends core::Object? = dynamic>(self::E1<self::E1<self::E5|constructor#_#new#tearOff::X%>% /* erasure=self::E5|constructor#_#new#tearOff::X%, declared=! */>% /* erasure=self::E5|constructor#_#new#tearOff::X%, declared=! */ it) → self::E5<self::E5|constructor#_#new#tearOff::X%>% /* erasure=self::E5|constructor#_#new#tearOff::X%, declared=! */
return self::E5|constructor#<self::E5|constructor#_#new#tearOff::X%>(it);
static extension-type-member method E6|constructor#<X extends core::Object? = dynamic>(self::E1<self::E1<self::E6|constructor#::X%>% /* erasure=self::E6|constructor#::X%, declared=! */>% /* erasure=self::E6|constructor#::X%, declared=! */ it) → self::E6<self::E6|constructor#::X%>% /* erasure=self::E6|constructor#::X%, declared=! */
;
static extension-type-member method E6|constructor#_#new#tearOff<X extends core::Object? = dynamic>(self::E1<self::E1<self::E6|constructor#_#new#tearOff::X%>% /* erasure=self::E6|constructor#_#new#tearOff::X%, declared=! */>% /* erasure=self::E6|constructor#_#new#tearOff::X%, declared=! */ it) → self::E6<self::E6|constructor#_#new#tearOff::X%>% /* erasure=self::E6|constructor#_#new#tearOff::X%, declared=! */
return self::E6|constructor#<self::E6|constructor#_#new#tearOff::X%>(it);
static extension-type-member method E7|constructor#<X extends core::Object? = dynamic>(self::E7|constructor#::X% it) → self::E7<self::E7|constructor#::X%>% /* erasure=self::E7|constructor#::X%, declared=! */
;
static extension-type-member method E7|constructor#_#new#tearOff<X extends core::Object? = dynamic>(self::E7|constructor#_#new#tearOff::X% it) → self::E7<self::E7|constructor#_#new#tearOff::X%>% /* erasure=self::E7|constructor#_#new#tearOff::X%, declared=! */
return self::E7|constructor#<self::E7|constructor#_#new#tearOff::X%>(it);
static method test() dynamic
;
static method _#F7#new#tearOff<X extends core::Object? = dynamic>(self::E1<self::_#F7#new#tearOff::X%>% /* erasure=self::_#F7#new#tearOff::X%, declared=! */ it) → self::E1<self::E1<self::_#F7#new#tearOff::X%>% /* erasure=self::_#F7#new#tearOff::X%, declared=! */>% /* erasure=self::_#F7#new#tearOff::X%, declared=! */
return self::E1|constructor#<self::E1<self::_#F7#new#tearOff::X%>% /* erasure=self::_#F7#new#tearOff::X%, declared=! */>(it);