| library; |
| import self as self; |
| import "dart:core" as core; |
| |
| abstract class A extends core::Object { |
| static factory •() → self::A /* redirection-target: self::B::• */ |
| return self::B::•(); |
| static method _#new#tearOff() → self::A |
| return new self::C::•<core::int>(); |
| } |
| abstract class B extends core::Object implements self::A { |
| static factory •() → self::B /* redirection-target: self::C::•<core::int>*/ |
| return new self::C::•<core::int>(); |
| static method _#new#tearOff() → self::B |
| return new self::C::•<core::int>(); |
| } |
| class C<T extends core::Object? = dynamic> extends core::Object implements self::B /*hasConstConstructor*/ { |
| const constructor •() → self::C<self::C::T%> |
| : super core::Object::•() |
| ; |
| static method _#new#tearOff<T extends core::Object? = dynamic>() → self::C<self::C::_#new#tearOff::T%> |
| return new self::C::•<self::C::_#new#tearOff::T%>(); |
| } |
| static method main() → dynamic { |
| #C1; |
| #C2; |
| #C4; |
| } |
| |
| constants { |
| #C1 = static-tearoff self::A::_#new#tearOff |
| #C2 = static-tearoff self::B::_#new#tearOff |
| #C3 = static-tearoff self::C::_#new#tearOff |
| #C4 = instantiation #C3 <core::String> |
| } |