blob: 932b16bebdd14f3ed0ba7be5d31f810527b4da07 [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/extend_with_type_variable.dart:13:7: Error: The type 'M' can't be mixed in.
// class Class2<T, M extends Mixin<T>> extends SuperClass with M {}
// ^
//
// pkg/front_end/testcases/general/extend_with_type_variable.dart:11:7: Error: The type variable 'S' can't be used as supertype.
// class Class1<T, S extends SuperClass> extends S with Mixin<T> {}
// ^
//
// pkg/front_end/testcases/general/extend_with_type_variable.dart:13:7: Error: The type variable 'M' can't be used as supertype.
// class Class2<T, M extends Mixin<T>> extends SuperClass with M {}
// ^
//
import self as self;
import "dart:core" as core;
class SuperClass extends core::Object {
synthetic constructor •() self::SuperClass
: super core::Object::•()
;
}
abstract class Mixin<T extends core::Object? = dynamic> extends core::Object /*isMixinDeclaration*/ {
}
abstract class _Class1&S&Mixin<T extends core::Object? = dynamic, S extends self::SuperClass> = core::Object with self::Mixin<self::_Class1&S&Mixin::T%> /*isAnonymousMixin*/ {
synthetic constructor •() self::_Class1&S&Mixin<self::_Class1&S&Mixin::T%, self::_Class1&S&Mixin::S>
: super core::Object::•()
;
}
class Class1<T extends core::Object? = dynamic, S extends self::SuperClass> extends self::_Class1&S&Mixin<self::Class1::T%, self::Class1::S> {
synthetic constructor •() self::Class1<self::Class1::T%, self::Class1::S>
: super self::_Class1&S&Mixin::•()
;
}
abstract class _Class2&SuperClass&M<T extends core::Object? = dynamic, M extends self::Mixin<self::_Class2&SuperClass&M::T%> = self::Mixin<dynamic>> extends self::SuperClass /*isAnonymousMixin*/ {
synthetic constructor •() self::_Class2&SuperClass&M<self::_Class2&SuperClass&M::T%, self::_Class2&SuperClass&M::M>
: super self::SuperClass::•()
;
}
class Class2<T extends core::Object? = dynamic, M extends self::Mixin<self::Class2::T%> = self::Mixin<dynamic>> extends self::_Class2&SuperClass&M<self::Class2::T%, self::Class2::M> {
synthetic constructor •() self::Class2<self::Class2::T%, self::Class2::M>
: super self::_Class2&SuperClass&M::•()
;
}
static method main() dynamic {}