blob: eb4ad7b14923df24abc18cb830f593f23cb9c06a [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/extension_types/issue53123.dart:5:18: Error: Type 'T' can't use itself as a bound.
// Try breaking the cycle by removing at least one of the 'extends' clauses in the cycle.
// extension type V<T extends V<T>>(T id) {}
// ^
//
import self as self;
extension type V<T extends invalid-type = self::V<dynamic>% /* erasure=dynamic, declared=! */>(T% id) {
abstract extension-type-member representation-field get id() T%;
constructor = self::V|constructor#;
constructor tearoff = self::V|constructor#_#new#tearOff;
}
static extension-type-member method V|constructor#<T extends invalid-type = self::V<dynamic>% /* erasure=dynamic, declared=! */>(self::V|constructor#::T% id) → self::V<self::V|constructor#::T%>% /* erasure=self::V|constructor#::T%, declared=! */
;
static extension-type-member method V|constructor#_#new#tearOff<T extends invalid-type = self::V<dynamic>% /* erasure=dynamic, declared=! */>(self::V|constructor#_#new#tearOff::T% id) → self::V<self::V|constructor#_#new#tearOff::T%>% /* erasure=self::V|constructor#_#new#tearOff::T%, declared=! */
return self::V|constructor#<self::V|constructor#_#new#tearOff::T%>(id);
static method test(self::V<self::V<dynamic>% /* erasure=dynamic, declared=! */>% /* erasure=dynamic, declared=! */ v) dynamic
;