| 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 {} |