blob: c61d2e4a146f39662bd7ab9ade067fa86587762a [file] [log] [blame]
library;
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<Null>*> = (X*) →* dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X*>* = self::A<dynamic>*> = (X*) →* X*;
typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (Null) →* 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::•()
;
abstract member-signature get _identityHashCode() core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) core::bool*; -> core::Object::==
abstract member-signature get hashCode() core::int*; -> core::Object::hashCode
abstract member-signature method toString() core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() core::Type*; -> core::Object::runtimeType
}
class B<X extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() self::B<self::B::X*>*
: super core::Object::•()
;
abstract member-signature get _identityHashCode() core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) core::bool*; -> core::Object::==
abstract member-signature get hashCode() core::int*; -> core::Object::hashCode
abstract member-signature method toString() core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() core::Type*; -> core::Object::runtimeType
}
static method toF<X extends core::Object* = dynamic>(self::toF::X* x) <Y extends self::toF::X* = dynamic>() →* void
return null;
static method testTopLevel() void {
() →* dynamic source1;
<Y extends () →* dynamic = dynamic>() →* void fsource1 = self::toF<() →* dynamic>(source1);
<Y extends () →* dynamic = dynamic>() →* void target1 = fsource1;
(dynamic) →* dynamic source2;
<Y extends (dynamic) →* dynamic = dynamic>() →* void fsource2 = self::toF<(dynamic) →* dynamic>(source2);
<Y extends (dynamic) →* dynamic = dynamic>() →* void target2 = fsource2;
(dynamic) →* dynamic source3;
<Y extends (dynamic) →* dynamic = dynamic>() →* void fsource3 = self::toF<(dynamic) →* dynamic>(source3);
<Y extends (dynamic) →* dynamic = dynamic>() →* void target3 = fsource3;
() →* core::num* source4;
<Y extends () →* core::num* = dynamic>() →* void fsource4 = self::toF<() →* core::num*>(source4);
<Y extends () →* core::num* = dynamic>() →* void target4 = fsource4;
(core::num*) →* dynamic source5;
<Y extends (core::num*) →* dynamic = dynamic>() →* void fsource5 = self::toF<(core::num*) →* dynamic>(source5);
<Y extends (core::num*) →* dynamic = dynamic>() →* void target5 = fsource5;
(core::num*) →* core::num* source6;
<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;
() →* self::A<dynamic>* source7;
<Y extends () →* self::A<dynamic>* = dynamic>() →* void fsource7 = self::toF<() →* self::A<dynamic>*>(source7);
<Y extends () →* self::A<dynamic>* = dynamic>() →* void target7 = fsource7;
(self::A<Null>*) →* dynamic source8;
<Y extends (self::A<Null>*) →* dynamic = dynamic>() →* void fsource8 = self::toF<(self::A<Null>*) →* dynamic>(source8);
<Y extends (self::A<Null>*) →* dynamic = dynamic>() →* void target8 = fsource8;
(self::A<dynamic>*) →* self::A<dynamic>* source9;
() →* (Null) →* dynamic source10;
<Y extends () →* (Null) →* dynamic = dynamic>() →* void fsource10 = self::toF<() →* (Null) →* dynamic>(source10);
<Y extends () →* (Null) →* dynamic = dynamic>() →* void target10 = fsource10;
((dynamic) →* dynamic) →* dynamic source11;
<Y extends ((dynamic) →* dynamic) →* dynamic = dynamic>() →* void fsource11 = self::toF<((dynamic) →* dynamic) →* dynamic>(source11);
<Y extends ((dynamic) →* dynamic) →* dynamic = dynamic>() →* void target11 = fsource11;
((dynamic) →* dynamic) →* (dynamic) →* dynamic source12;
<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() void {
self::B<() →* dynamic>* source1;
<Y extends self::B<() →* dynamic>* = dynamic>() →* void fsource1 = self::toF<self::B<() →* dynamic>*>(source1);
<Y extends self::B<() →* dynamic>* = dynamic>() →* void target1 = fsource1;
self::B<(dynamic) →* dynamic>* source2;
<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;
self::B<(dynamic) →* dynamic>* source3;
<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;
self::B<() →* core::num*>* source4;
<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;
self::B<(core::num*) →* dynamic>* source5;
<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;
self::B<(core::num*) →* core::num*>* source6;
<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;
self::B<() →* self::A<dynamic>*>* source7;
<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;
self::B<(self::A<Null>*) →* dynamic>* source8;
<Y extends self::B<(self::A<Null>*) →* dynamic>* = dynamic>() →* void fsource8 = self::toF<self::B<(self::A<Null>*) →* dynamic>*>(source8);
<Y extends self::B<(self::A<Null>*) →* dynamic>* = dynamic>() →* void target8 = fsource8;
self::B<(self::A<dynamic>*) →* self::A<dynamic>*>* source9;
self::B<() →* (Null) →* dynamic>* source10;
<Y extends self::B<() →* (Null) →* dynamic>* = dynamic>() →* void fsource10 = self::toF<self::B<() →* (Null) →* dynamic>*>(source10);
<Y extends self::B<() →* (Null) →* dynamic>* = dynamic>() →* void target10 = fsource10;
self::B<((dynamic) →* dynamic) →* dynamic>* source11;
<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;
self::B<((dynamic) →* dynamic) →* (dynamic) →* dynamic>* source12;
<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 {
self::testTopLevel();
self::testNested();
}