Index: pkg/front_end/testcases/redirecting_factory_type_arguments.dart.direct.expect |
diff --git a/pkg/front_end/testcases/redirecting_factory_type_arguments.dart.direct.expect b/pkg/front_end/testcases/redirecting_factory_type_arguments.dart.direct.expect |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c8f3937a6a6fbaa50b4be633b2e19a1d726e5b7d |
--- /dev/null |
+++ b/pkg/front_end/testcases/redirecting_factory_type_arguments.dart.direct.expect |
@@ -0,0 +1,42 @@ |
+library; |
+import self as self; |
+import "dart:core" as core; |
+ |
+class A extends core::Object { |
+ default constructor •() → void |
+ : super core::Object::•() |
+ ; |
+} |
+class B extends core::Object { |
+ default constructor •() → void |
+ : super core::Object::•() |
+ ; |
+} |
+class C<C1 extends core::Object, C2 extends core::Object> extends core::Object { |
+ static field dynamic _redirecting# = <dynamic>[self::C::•]; |
+ static factory •<C1 extends core::Object, C2 extends core::Object>() → self::C<self::C::•::C1, self::C::•::C2> |
+ let self::D<self::C::•::C2, self::C::•::C1> #redirecting_factory = self::D::• in invalid-expression; |
+} |
+abstract class D<D1 extends core::Object, D2 extends core::Object> extends core::Object implements self::C<self::D::D2, self::D::D1> { |
+ static field dynamic _redirecting# = <dynamic>[self::D::•]; |
+ static factory •<D1 extends core::Object, D2 extends core::Object>() → self::D<self::D::•::D1, self::D::•::D2> |
+ let self::E<self::D::•::D1, self::D::•::D2> #redirecting_factory = self::E::• in invalid-expression; |
+} |
+class E<E1 extends core::Object, E2 extends core::Object> extends core::Object implements self::D<self::E::E1, self::E::E2> { |
+ static field dynamic _redirecting# = <dynamic>[self::E::•]; |
+ static factory •<E1 extends core::Object, E2 extends core::Object>() → self::E<self::E::•::E1, self::E::•::E2> |
+ let self::F<self::E::•::E1, self::E::•::E2> #redirecting_factory = self::F::• in invalid-expression; |
+} |
+class F<F1 extends core::Object, F2 extends core::Object> extends core::Object implements self::E<self::F::F1, self::F::F2> { |
+ constructor •() → void |
+ : super core::Object::•() |
+ ; |
+} |
+static method main() → dynamic { |
+ "Should be F<B, A>"; |
+ new self::F::•<self::B, self::A>(); |
+ "Should be F<A, B>"; |
+ new self::F::•<self::A, self::B>(); |
+ "Should be F<A, B>"; |
+ new self::F::•<self::A, self::B>(); |
+} |