| library /*isNonNullableByDefault*/; |
| import self as self; |
| import "dart:core" as core; |
| |
| abstract class A<T extends core::Object? = dynamic> extends core::Object { |
| static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/; |
| static factory •<T extends core::Object? = dynamic>() → self::A<self::A::•::T%> |
| return self::B::•<dynamic, self::A::•::T%>(); |
| static method _#new#tearOff<T extends core::Object? = dynamic>() → self::A<self::A::_#new#tearOff::T%> |
| return new self::C::•<self::A::_#new#tearOff::T%, dynamic, dynamic>(); |
| } |
| abstract class B<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends core::Object implements self::A<self::B::T%> { |
| static final field dynamic _redirecting# = <dynamic>[#C2]/*isLegacy*/; |
| static factory •<S extends core::Object? = dynamic, T extends core::Object? = dynamic>() → self::B<self::B::•::S%, self::B::•::T%> |
| return new self::C::•<self::B::•::T%, self::B::•::S%, dynamic>(); |
| static method _#new#tearOff<S extends core::Object? = dynamic, T extends core::Object? = dynamic>() → self::B<self::B::_#new#tearOff::S%, self::B::_#new#tearOff::T%> |
| return new self::C::•<self::B::_#new#tearOff::T%, self::B::_#new#tearOff::S%, dynamic>(); |
| } |
| class C<T extends core::Object? = dynamic, S extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object implements self::B<self::C::S%, self::C::T%> /*hasConstConstructor*/ { |
| const constructor •() → self::C<self::C::T%, self::C::S%, self::C::U%> |
| : super core::Object::•() |
| ; |
| static method _#new#tearOff<T extends core::Object? = dynamic, S extends core::Object? = dynamic, U extends core::Object? = dynamic>() → self::C<self::C::_#new#tearOff::T%, self::C::_#new#tearOff::S%, self::C::_#new#tearOff::U%> |
| return new self::C::•<self::C::_#new#tearOff::T%, self::C::_#new#tearOff::S%, self::C::_#new#tearOff::U%>(); |
| } |
| static method main() → dynamic { |
| #C4; |
| #C6; |
| #C8; |
| } |
| |
| constants { |
| #C1 = constructor-tearoff self::A::• |
| #C2 = constructor-tearoff self::B::• |
| #C3 = static-tearoff self::A::_#new#tearOff |
| #C4 = instantiation #C3 <core::int*> |
| #C5 = static-tearoff self::B::_#new#tearOff |
| #C6 = instantiation #C5 <core::String*, core::double*> |
| #C7 = static-tearoff self::C::_#new#tearOff |
| #C8 = instantiation #C7 <core::bool*, core::num*, void> |
| } |