| library; |
| import self as self; |
| import "dart:core" as core; |
| import "package:expect/expect.dart" as exp; |
| |
| import "package:expect/expect.dart"; |
| |
| class A extends core::Object { |
| static field dynamic _redirecting# = <dynamic>[self::A::foo]; |
| constructor •() → self::A |
| : super core::Object::•() {} |
| static factory foo() → self::A |
| let () → self::C #redirecting_factory = self::C::bar in invalid-expression; |
| method m() → core::int {} |
| } |
| class C extends self::A { |
| static field dynamic _redirecting# = <dynamic>[self::C::bar]; |
| constructor •() → self::C |
| : super self::A::•() {} |
| static factory bar() → self::C |
| let<BottomType> #redirecting_factory = self::D::• in invalid-expression; |
| method m() → core::int { |
| return 1; |
| } |
| } |
| class D extends self::C { |
| synthetic constructor •() → self::D |
| : super self::C::•() |
| ; |
| method m() → core::int { |
| return 2; |
| } |
| } |
| static method main() → dynamic { |
| self::A a = new self::D::•(); |
| exp::Expect::equals(2, a.{self::A::m}()); |
| } |