| library #lib /*isNonNullableByDefault*/; |
| import self as self; |
| import "dart:core" as core; |
| |
| @#C3 |
| class A extends core::Object { |
| constructor •() → self::A |
| : super core::Object::•() |
| ; |
| @#C3 |
| static factory foo() → self::A |
| return new self::B::•(); |
| } |
| class B extends self::A { |
| constructor •() → self::B |
| : super self::A::•() |
| ; |
| } |
| abstract class C extends core::Object { |
| constructor •() → self::C |
| : super core::Object::•() |
| ; |
| @#C3 |
| static factory bar() → self::C |
| return [@vm.inferred-type.metadata=#lib::E] self::D::baz(); |
| } |
| abstract class D extends self::C { |
| constructor •() → self::D |
| : super self::C::•() |
| ; |
| static factory baz() → self::D |
| return new self::E::•(); |
| } |
| class E extends self::D { |
| constructor •() → self::E |
| : super self::D::•() |
| ; |
| } |
| static method main() → void {} |
| constants { |
| #C1 = "vm:entry-point" |
| #C2 = null |
| #C3 = core::pragma {name:#C1, options:#C2} |
| } |