blob: bc5e8870d5019db8c19f3ba8040904d640e56e7f [file] [log] [blame]
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A<X extends core::Object, Y extends core::Object?> extends core::Object {
synthetic constructor •() self::A<self::A::X, self::A::Y%>
: super core::Object::•()
;
method foo() self::A::X
return self::never();
method bar() self::A::X?
return null;
method baz() self::A::Y%
return self::never();
}
class B<X extends core::List<self::B::Y%> = core::List<core::Object?>, Y extends core::Object?> extends core::Object {
synthetic constructor •() self::B<self::B::X, self::B::Y%>
: super core::Object::•()
;
method foo(covariant-by-class self::B::X x, covariant-by-class self::B::Y% y) dynamic {}
}
class C<X extends core::List<self::C::Y%>? = core::List<dynamic>?, Y extends core::List<self::C::X%>? = core::List<dynamic>?> extends core::Object {
synthetic constructor •() self::C<self::C::X%, self::C::Y%>
: super core::Object::•()
;
method foo(covariant-by-class self::C::X% x, covariant-by-class self::C::Y% y) dynamic {}
}
class D<X extends self::D::Y% = dynamic, Y extends self::D::Z% = dynamic, Z extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() self::D<self::D::X%, self::D::Y%, self::D::Z%>
: super core::Object::•()
;
method foo(covariant-by-class self::D::X% x, covariant-by-class self::D::Y% y, covariant-by-class self::D::Z% z) dynamic {}
}
static method never() Never
return throw "Never";
static method main() dynamic {
function fun1<X extends core::Object, Y extends core::Object?>() X
return self::never();
function fun2<X extends core::Object, Y extends core::Object?>() Y%
return self::never();
function fun3<X extends core::List<Y%> = core::List<core::Object?>, Y extends core::Object?>() X
return self::never();
function fun4<X extends core::List<Y%> = core::List<core::Object?>, Y extends core::Object?>() Y%
return self::never();
function fun5<X extends core::List<Y%>? = core::List<dynamic>?, Y extends core::List<X%>? = core::List<dynamic>?>() X%
return self::never();
function fun6<X extends core::List<Y%>? = core::List<dynamic>?, Y extends core::List<X%>? = core::List<dynamic>?>() Y%
return self::never();
function fun7<X extends Y% = dynamic, Y extends Z% = dynamic, Z extends core::Object? = dynamic>() X%
return self::never();
function fun8<X extends Y% = dynamic, Y extends Z% = dynamic, Z extends core::Object? = dynamic>() Y%
return self::never();
function fun9<X extends Y% = dynamic, Y extends Z% = dynamic, Z extends core::Object? = dynamic>() Z%
return self::never();
}