Index: test/codegen/expect/language/cyclic_type2_test.js |
diff --git a/test/codegen/expect/language/cyclic_type2_test.js b/test/codegen/expect/language/cyclic_type2_test.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..10c8678f6ea3191391667a5f6eedd9b89f840e75 |
--- /dev/null |
+++ b/test/codegen/expect/language/cyclic_type2_test.js |
@@ -0,0 +1,60 @@ |
+dart_library.library('language/cyclic_type2_test', null, /* Imports */[ |
+ 'dart_sdk', |
+ 'expect' |
+], function load__cyclic_type2_test(exports, dart_sdk, expect) { |
+ 'use strict'; |
+ const core = dart_sdk.core; |
+ const dart = dart_sdk.dart; |
+ const dartx = dart_sdk.dartx; |
+ const expect$ = expect.expect; |
+ const cyclic_type2_test = Object.create(null); |
+ let Base = () => (Base = dart.constFn(cyclic_type2_test.Base$()))(); |
+ let Derived1 = () => (Derived1 = dart.constFn(cyclic_type2_test.Derived1$()))(); |
+ let Derived2 = () => (Derived2 = dart.constFn(cyclic_type2_test.Derived2$()))(); |
+ let Derived1OfDerived1$Derived2 = () => (Derived1OfDerived1$Derived2 = dart.constFn(cyclic_type2_test.Derived1$(cyclic_type2_test.Derived1, cyclic_type2_test.Derived2)))(); |
+ let Derived1OfDerived1$Derived1 = () => (Derived1OfDerived1$Derived1 = dart.constFn(cyclic_type2_test.Derived1$(cyclic_type2_test.Derived1, cyclic_type2_test.Derived1)))(); |
+ let Derived2OfDerived2$Derived1 = () => (Derived2OfDerived2$Derived1 = dart.constFn(cyclic_type2_test.Derived2$(cyclic_type2_test.Derived2, cyclic_type2_test.Derived1)))(); |
+ let Derived1OfDerived2OfDerived2$Derived1$Derived2 = () => (Derived1OfDerived2OfDerived2$Derived1$Derived2 = dart.constFn(cyclic_type2_test.Derived1$(Derived2OfDerived2$Derived1(), cyclic_type2_test.Derived2)))(); |
+ let BaseOfDerived1OfDerived1$Derived2$Derived1OfDerived2OfDerived2$Derived1$Derived2 = () => (BaseOfDerived1OfDerived1$Derived2$Derived1OfDerived2OfDerived2$Derived1$Derived2 = dart.constFn(cyclic_type2_test.Base$(Derived1OfDerived1$Derived2(), Derived1OfDerived2OfDerived2$Derived1$Derived2())))(); |
+ let Derived2OfDerived2$Derived2 = () => (Derived2OfDerived2$Derived2 = dart.constFn(cyclic_type2_test.Derived2$(cyclic_type2_test.Derived2, cyclic_type2_test.Derived2)))(); |
+ let Derived1OfDerived2OfDerived2$Derived2$Derived2 = () => (Derived1OfDerived2OfDerived2$Derived2$Derived2 = dart.constFn(cyclic_type2_test.Derived1$(Derived2OfDerived2$Derived2(), cyclic_type2_test.Derived2)))(); |
+ let BaseOfDerived1OfDerived1$Derived2$Derived1OfDerived2OfDerived2$Derived2$Derived2 = () => (BaseOfDerived1OfDerived1$Derived2$Derived1OfDerived2OfDerived2$Derived2$Derived2 = dart.constFn(cyclic_type2_test.Base$(Derived1OfDerived1$Derived2(), Derived1OfDerived2OfDerived2$Derived2$Derived2())))(); |
+ let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))(); |
+ cyclic_type2_test.Base$ = dart.generic((U, V) => { |
+ class Base extends core.Object { |
+ get u() { |
+ return dart.wrapType(U); |
+ } |
+ get v() { |
+ return dart.wrapType(V); |
+ } |
+ } |
+ dart.addTypeTests(Base); |
+ return Base; |
+ }); |
+ cyclic_type2_test.Base = Base(); |
+ cyclic_type2_test.Derived1$ = dart.generic((U, V) => { |
+ class Derived1 extends cyclic_type2_test.Base {} |
+ dart.setBaseClass(Derived1, cyclic_type2_test.Base$(Derived1, cyclic_type2_test.Derived1$(cyclic_type2_test.Derived2$(V, U), cyclic_type2_test.Derived2))); |
+ return Derived1; |
+ }); |
+ cyclic_type2_test.Derived1 = Derived1(); |
+ cyclic_type2_test.Derived2$ = dart.generic((U, V) => { |
+ class Derived2 extends cyclic_type2_test.Base {} |
+ dart.setBaseClass(Derived2, cyclic_type2_test.Base$(Derived2, cyclic_type2_test.Derived2$(cyclic_type2_test.Derived1$(V, U), cyclic_type2_test.Derived1))); |
+ return Derived2; |
+ }); |
+ cyclic_type2_test.Derived2 = Derived2(); |
+ cyclic_type2_test.main = function() { |
+ let d = new (Derived1OfDerived1$Derived2())(); |
+ expect$.Expect.equals("Derived1<Derived1, Derived2>", dart.toString(d.u)); |
+ expect$.Expect.equals("Derived1<Derived2<Derived2, Derived1>, Derived2>", dart.toString(d.v)); |
+ expect$.Expect.isTrue(Derived1OfDerived1$Derived2().is(d)); |
+ expect$.Expect.isFalse(Derived1OfDerived1$Derived1().is(d)); |
+ expect$.Expect.isTrue(BaseOfDerived1OfDerived1$Derived2$Derived1OfDerived2OfDerived2$Derived1$Derived2().is(d)); |
+ expect$.Expect.isFalse(BaseOfDerived1OfDerived1$Derived2$Derived1OfDerived2OfDerived2$Derived2$Derived2().is(d)); |
+ }; |
+ dart.fn(cyclic_type2_test.main, VoidTodynamic()); |
+ // Exports: |
+ exports.cyclic_type2_test = cyclic_type2_test; |
+}); |