blob: 85c9d464c92bf21e5e1dc67c8af02899b0fd86bc [file] [log] [blame]
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
typedef F<invariant X extends core::Object? = dynamic> = <Y extends X% = dynamic>() void;
typedef Fcov<X extends core::Object? = dynamic> = () X%;
typedef Fcon<contravariant X extends core::Object? = dynamic> = (X%) dynamic;
typedef Finv<invariant X extends core::Object? = dynamic> = (X%) X%;
typedef FcovBound<X extends core::num> = () X;
typedef FconBound<contravariant X extends core::num> = (X) dynamic;
typedef FinvBound<invariant X extends core::num> = (X) X;
typedef FcovCyclicBound<X extends self::A<X> = self::A<dynamic>> = () X;
typedef FconCyclicBound<contravariant X extends self::A<X> = self::A<Never>> = (X) dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X> = self::A<dynamic>> = (X) X;
typedef FcovCyclicCoBound<X extends (X) dynamic = (Never) dynamic> = () X;
typedef FconCyclicCoBound<contravariant X extends (X) dynamic = (dynamic) dynamic> = (X) dynamic;
typedef FinvCyclicCoBound<invariant X extends (X) dynamic = (dynamic) dynamic> = (X) X;
class A<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() self::A<self::A::X%>
: super core::Object::•()
;
}
class B<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() self::B<self::B::X%>
: super core::Object::•()
;
}
static method toF<X extends core::Object? = dynamic>(self::toF::X% x) <Y extends self::toF::X% = dynamic>() void
return throw "";
static method testTopLevel(() dynamic source1, (dynamic) dynamic source2, (dynamic) dynamic source3, () core::num source4, (core::num) dynamic source5, (core::num) core::num source6, () self::A<dynamic> source7, (self::A<Never>) dynamic source8, () (Never) dynamic source10, ((dynamic) dynamic) dynamic source11, ((dynamic) dynamic) (dynamic) dynamic source12) void {
<Y extends () dynamic = dynamic>() void fsource1 = self::toF<() dynamic>(source1);
<Y extends () dynamic = dynamic>() void target1 = fsource1;
<Y extends (dynamic) dynamic = dynamic>() void fsource2 = self::toF<(dynamic) dynamic>(source2);
<Y extends (dynamic) dynamic = dynamic>() void target2 = fsource2;
<Y extends (dynamic) dynamic = dynamic>() void fsource3 = self::toF<(dynamic) dynamic>(source3);
<Y extends (dynamic) dynamic = dynamic>() void target3 = fsource3;
<Y extends () core::num = dynamic>() void fsource4 = self::toF<() core::num>(source4);
<Y extends () core::num = dynamic>() void target4 = fsource4;
<Y extends (core::num) dynamic = dynamic>() void fsource5 = self::toF<(core::num) dynamic>(source5);
<Y extends (core::num) dynamic = dynamic>() void target5 = fsource5;
<Y extends (core::num) core::num = dynamic>() void fsource6 = self::toF<(core::num) core::num>(source6);
<Y extends (core::num) core::num = dynamic>() void target6 = fsource6;
<Y extends () self::A<dynamic> = dynamic>() void fsource7 = self::toF<() self::A<dynamic>>(source7);
<Y extends () self::A<dynamic> = dynamic>() void target7 = fsource7;
<Y extends (self::A<Never>) dynamic = dynamic>() void fsource8 = self::toF<(self::A<Never>) dynamic>(source8);
<Y extends (self::A<Never>) dynamic = dynamic>() void target8 = fsource8;
(self::A<dynamic>) self::A<dynamic> source9;
<Y extends () (Never) dynamic = dynamic>() void fsource10 = self::toF<() (Never) dynamic>(source10);
<Y extends () (Never) dynamic = dynamic>() void target10 = fsource10;
<Y extends ((dynamic) dynamic) dynamic = dynamic>() void fsource11 = self::toF<((dynamic) dynamic) dynamic>(source11);
<Y extends ((dynamic) dynamic) dynamic = dynamic>() void target11 = fsource11;
<Y extends ((dynamic) dynamic) (dynamic) dynamic = dynamic>() void fsource12 = self::toF<((dynamic) dynamic) (dynamic) dynamic>(source12);
<Y extends ((dynamic) dynamic) (dynamic) dynamic = dynamic>() void target12 = fsource12;
}
static method testNested(self::B<() dynamic> source1, self::B<(dynamic) dynamic> source2, self::B<(dynamic) dynamic> source3, self::B<() core::num> source4, self::B<(core::num) dynamic> source5, self::B<(core::num) core::num> source6, self::B<() self::A<dynamic>> source7, self::B<(self::A<Never>) dynamic> source8, self::B<() (Never) dynamic> source10, self::B<((dynamic) dynamic) dynamic> source11, self::B<((dynamic) dynamic) (dynamic) dynamic> source12) void {
<Y extends self::B<() dynamic> = dynamic>() void fsource1 = self::toF<self::B<() dynamic>>(source1);
<Y extends self::B<() dynamic> = dynamic>() void target1 = fsource1;
<Y extends self::B<(dynamic) dynamic> = dynamic>() void fsource2 = self::toF<self::B<(dynamic) dynamic>>(source2);
<Y extends self::B<(dynamic) dynamic> = dynamic>() void target2 = fsource2;
<Y extends self::B<(dynamic) dynamic> = dynamic>() void fsource3 = self::toF<self::B<(dynamic) dynamic>>(source3);
<Y extends self::B<(dynamic) dynamic> = dynamic>() void target3 = fsource3;
<Y extends self::B<() core::num> = dynamic>() void fsource4 = self::toF<self::B<() core::num>>(source4);
<Y extends self::B<() core::num> = dynamic>() void target4 = fsource4;
<Y extends self::B<(core::num) dynamic> = dynamic>() void fsource5 = self::toF<self::B<(core::num) dynamic>>(source5);
<Y extends self::B<(core::num) dynamic> = dynamic>() void target5 = fsource5;
<Y extends self::B<(core::num) core::num> = dynamic>() void fsource6 = self::toF<self::B<(core::num) core::num>>(source6);
<Y extends self::B<(core::num) core::num> = dynamic>() void target6 = fsource6;
<Y extends self::B<() self::A<dynamic>> = dynamic>() void fsource7 = self::toF<self::B<() self::A<dynamic>>>(source7);
<Y extends self::B<() self::A<dynamic>> = dynamic>() void target7 = fsource7;
<Y extends self::B<(self::A<Never>) dynamic> = dynamic>() void fsource8 = self::toF<self::B<(self::A<Never>) dynamic>>(source8);
<Y extends self::B<(self::A<Never>) dynamic> = dynamic>() void target8 = fsource8;
self::B<(self::A<dynamic>) self::A<dynamic>> source9;
<Y extends self::B<() (Never) dynamic> = dynamic>() void fsource10 = self::toF<self::B<() (Never) dynamic>>(source10);
<Y extends self::B<() (Never) dynamic> = dynamic>() void target10 = fsource10;
<Y extends self::B<((dynamic) dynamic) dynamic> = dynamic>() void fsource11 = self::toF<self::B<((dynamic) dynamic) dynamic>>(source11);
<Y extends self::B<((dynamic) dynamic) dynamic> = dynamic>() void target11 = fsource11;
<Y extends self::B<((dynamic) dynamic) (dynamic) dynamic> = dynamic>() void fsource12 = self::toF<self::B<((dynamic) dynamic) (dynamic) dynamic>>(source12);
<Y extends self::B<((dynamic) dynamic) (dynamic) dynamic> = dynamic>() void target12 = fsource12;
}
static method main() dynamic {}