| Index: test/codegen/expect/language/generic_deep_test.js
|
| diff --git a/test/codegen/expect/language/generic_deep_test.js b/test/codegen/expect/language/generic_deep_test.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1543758ab59d6d295751f6825ecb5b93e4756331
|
| --- /dev/null
|
| +++ b/test/codegen/expect/language/generic_deep_test.js
|
| @@ -0,0 +1,124 @@
|
| +dart_library.library('language/generic_deep_test', null, /* Imports */[
|
| + 'dart_sdk',
|
| + 'expect'
|
| +], function load__generic_deep_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 generic_deep_test = Object.create(null);
|
| + let SOfZ = () => (SOfZ = dart.constFn(generic_deep_test.S$(generic_deep_test.Z)))();
|
| + let S = () => (S = dart.constFn(generic_deep_test.S$()))();
|
| + let SOfS = () => (SOfS = dart.constFn(generic_deep_test.S$(generic_deep_test.S)))();
|
| + let SOfSOfZ = () => (SOfSOfZ = dart.constFn(generic_deep_test.S$(SOfZ())))();
|
| + let SOfSOfSOfZ = () => (SOfSOfSOfZ = dart.constFn(generic_deep_test.S$(SOfSOfZ())))();
|
| + let SOfSOfSOfSOfZ = () => (SOfSOfSOfSOfZ = dart.constFn(generic_deep_test.S$(SOfSOfSOfZ())))();
|
| + let SOfSOfSOfSOfSOfZ = () => (SOfSOfSOfSOfSOfZ = dart.constFn(generic_deep_test.S$(SOfSOfSOfSOfZ())))();
|
| + let SOfSOfSOfSOfSOfSOfZ = () => (SOfSOfSOfSOfSOfSOfZ = dart.constFn(generic_deep_test.S$(SOfSOfSOfSOfSOfZ())))();
|
| + let SOfSOfSOfSOfSOfSOfSOfZ = () => (SOfSOfSOfSOfSOfSOfSOfZ = dart.constFn(generic_deep_test.S$(SOfSOfSOfSOfSOfSOfZ())))();
|
| + let SOfSOfSOfSOfSOfSOfSOfSOfZ = () => (SOfSOfSOfSOfSOfSOfSOfSOfZ = dart.constFn(generic_deep_test.S$(SOfSOfSOfSOfSOfSOfSOfZ())))();
|
| + let SOfSOfSOfSOfSOfSOfSOfSOfSOfZ = () => (SOfSOfSOfSOfSOfSOfSOfSOfSOfZ = dart.constFn(generic_deep_test.S$(SOfSOfSOfSOfSOfSOfSOfSOfZ())))();
|
| + let SOfSOfSOfSOfSOfSOfSOfSOfSOfSOfZ = () => (SOfSOfSOfSOfSOfSOfSOfSOfSOfSOfZ = dart.constFn(generic_deep_test.S$(SOfSOfSOfSOfSOfSOfSOfSOfSOfZ())))();
|
| + let SOfSOfS = () => (SOfSOfS = dart.constFn(generic_deep_test.S$(SOfS())))();
|
| + let SOfSOfSOfS = () => (SOfSOfSOfS = dart.constFn(generic_deep_test.S$(SOfSOfS())))();
|
| + let SOfSOfSOfSOfS = () => (SOfSOfSOfSOfS = dart.constFn(generic_deep_test.S$(SOfSOfSOfS())))();
|
| + let intToN = () => (intToN = dart.constFn(dart.definiteFunctionType(generic_deep_test.N, [core.int])))();
|
| + let NToint = () => (NToint = dart.constFn(dart.definiteFunctionType(core.int, [generic_deep_test.N])))();
|
| + let NTobool = () => (NTobool = dart.constFn(dart.definiteFunctionType(core.bool, [generic_deep_test.N])))();
|
| + let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
|
| + generic_deep_test.N = class N extends core.Object {};
|
| + generic_deep_test.Z = class Z extends core.Object {
|
| + new() {
|
| + }
|
| + add1() {
|
| + return new (SOfZ())(this);
|
| + }
|
| + sub1() {
|
| + dart.throw("Error: sub1(0)");
|
| + }
|
| + };
|
| + generic_deep_test.Z[dart.implements] = () => [generic_deep_test.N];
|
| + dart.setSignature(generic_deep_test.Z, {
|
| + constructors: () => ({new: dart.definiteFunctionType(generic_deep_test.Z, [])}),
|
| + methods: () => ({
|
| + add1: dart.definiteFunctionType(generic_deep_test.N, []),
|
| + sub1: dart.definiteFunctionType(generic_deep_test.N, [])
|
| + })
|
| + });
|
| + generic_deep_test.S$ = dart.generic(K => {
|
| + let SOfK = () => (SOfK = dart.constFn(generic_deep_test.S$(K)))();
|
| + let SOfSOfK = () => (SOfSOfK = dart.constFn(generic_deep_test.S$(SOfK())))();
|
| + class S extends core.Object {
|
| + new(before) {
|
| + this.before = before;
|
| + }
|
| + add1() {
|
| + return new (SOfSOfK())(this);
|
| + }
|
| + sub1() {
|
| + return this.before;
|
| + }
|
| + }
|
| + dart.addTypeTests(S);
|
| + S[dart.implements] = () => [generic_deep_test.N];
|
| + dart.setSignature(S, {
|
| + constructors: () => ({new: dart.definiteFunctionType(generic_deep_test.S$(K), [generic_deep_test.N])}),
|
| + methods: () => ({
|
| + add1: dart.definiteFunctionType(generic_deep_test.N, []),
|
| + sub1: dart.definiteFunctionType(generic_deep_test.N, [])
|
| + })
|
| + });
|
| + return S;
|
| + });
|
| + generic_deep_test.S = S();
|
| + generic_deep_test.NFromInt = function(x) {
|
| + if (x == 0)
|
| + return new generic_deep_test.Z();
|
| + else
|
| + return generic_deep_test.NFromInt(dart.notNull(x) - 1).add1();
|
| + };
|
| + dart.fn(generic_deep_test.NFromInt, intToN());
|
| + generic_deep_test.IntFromN = function(x) {
|
| + if (generic_deep_test.Z.is(x)) return 0;
|
| + if (generic_deep_test.S.is(x)) return dart.notNull(generic_deep_test.IntFromN(x.sub1())) + 1;
|
| + dart.throw("Error");
|
| + };
|
| + dart.fn(generic_deep_test.IntFromN, NToint());
|
| + generic_deep_test.IsEven = function(x) {
|
| + if (generic_deep_test.Z.is(x)) return true;
|
| + if (SOfZ().is(x)) return false;
|
| + if (SOfS().is(x)) return generic_deep_test.IsEven(x.sub1().sub1());
|
| + dart.throw("Error in IsEven");
|
| + };
|
| + dart.fn(generic_deep_test.IsEven, NTobool());
|
| + generic_deep_test.main = function() {
|
| + expect$.Expect.isTrue(generic_deep_test.Z.is(generic_deep_test.NFromInt(0)));
|
| + expect$.Expect.isTrue(SOfZ().is(generic_deep_test.NFromInt(1)));
|
| + expect$.Expect.isTrue(SOfSOfZ().is(generic_deep_test.NFromInt(2)));
|
| + expect$.Expect.isTrue(SOfSOfSOfZ().is(generic_deep_test.NFromInt(3)));
|
| + expect$.Expect.isTrue(SOfSOfSOfSOfSOfSOfSOfSOfSOfSOfZ().is(generic_deep_test.NFromInt(10)));
|
| + expect$.Expect.isTrue(!generic_deep_test.S.is(generic_deep_test.NFromInt(0)));
|
| + expect$.Expect.isTrue(!generic_deep_test.Z.is(generic_deep_test.NFromInt(1)));
|
| + expect$.Expect.isTrue(!SOfS().is(generic_deep_test.NFromInt(1)));
|
| + expect$.Expect.isTrue(!generic_deep_test.Z.is(generic_deep_test.NFromInt(2)));
|
| + expect$.Expect.isTrue(!SOfZ().is(generic_deep_test.NFromInt(2)));
|
| + expect$.Expect.isTrue(!SOfSOfS().is(generic_deep_test.NFromInt(2)));
|
| + expect$.Expect.isTrue(SOfS().is(generic_deep_test.NFromInt(4)));
|
| + expect$.Expect.isTrue(SOfSOfS().is(generic_deep_test.NFromInt(4)));
|
| + expect$.Expect.isTrue(SOfSOfSOfS().is(generic_deep_test.NFromInt(4)));
|
| + expect$.Expect.isTrue(!SOfSOfSOfSOfS().is(generic_deep_test.NFromInt(4)));
|
| + expect$.Expect.isTrue(generic_deep_test.IsEven(generic_deep_test.NFromInt(0)));
|
| + expect$.Expect.isFalse(generic_deep_test.IsEven(generic_deep_test.NFromInt(1)));
|
| + expect$.Expect.isTrue(generic_deep_test.IsEven(generic_deep_test.NFromInt(2)));
|
| + expect$.Expect.isFalse(generic_deep_test.IsEven(generic_deep_test.NFromInt(3)));
|
| + expect$.Expect.isTrue(generic_deep_test.IsEven(generic_deep_test.NFromInt(4)));
|
| + expect$.Expect.equals(0, generic_deep_test.IntFromN(generic_deep_test.NFromInt(0)));
|
| + expect$.Expect.equals(1, generic_deep_test.IntFromN(generic_deep_test.NFromInt(1)));
|
| + expect$.Expect.equals(2, generic_deep_test.IntFromN(generic_deep_test.NFromInt(2)));
|
| + expect$.Expect.equals(50, generic_deep_test.IntFromN(generic_deep_test.NFromInt(50)));
|
| + };
|
| + dart.fn(generic_deep_test.main, VoidTodynamic());
|
| + // Exports:
|
| + exports.generic_deep_test = generic_deep_test;
|
| +});
|
|
|