From 3df576d112de95308cb2328ef7a9f1b1c12954e1 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 31 Mar 2015 18:11:54 -0700 Subject: [PATCH] Adding a couple of class tests. --- .../reference/classExpressionTest1.errors.txt | 18 ++++++++++++ .../reference/classExpressionTest1.js | 29 +++++++++++++++++++ .../reference/classExpressionTest2.errors.txt | 21 ++++++++++++++ .../reference/classExpressionTest2.js | 29 +++++++++++++++++++ tests/cases/compiler/classExpressionTest1.ts | 12 ++++++++ tests/cases/compiler/classExpressionTest2.ts | 12 ++++++++ 6 files changed, 121 insertions(+) create mode 100644 tests/baselines/reference/classExpressionTest1.errors.txt create mode 100644 tests/baselines/reference/classExpressionTest1.js create mode 100644 tests/baselines/reference/classExpressionTest2.errors.txt create mode 100644 tests/baselines/reference/classExpressionTest2.js create mode 100644 tests/cases/compiler/classExpressionTest1.ts create mode 100644 tests/cases/compiler/classExpressionTest2.ts diff --git a/tests/baselines/reference/classExpressionTest1.errors.txt b/tests/baselines/reference/classExpressionTest1.errors.txt new file mode 100644 index 0000000000..4d7e1cda63 --- /dev/null +++ b/tests/baselines/reference/classExpressionTest1.errors.txt @@ -0,0 +1,18 @@ +tests/cases/compiler/classExpressionTest1.ts(2,11): error TS9004: 'class' declarations are only supported directly inside a module or as a top level declaration. + + +==== tests/cases/compiler/classExpressionTest1.ts (1 errors) ==== + function M() { + class C { + ~ +!!! error TS9004: 'class' declarations are only supported directly inside a module or as a top level declaration. + f() { + var t: T; + var x: X; + return { t, x }; + } + } + + var v = new C(); + return v.f(); + } \ No newline at end of file diff --git a/tests/baselines/reference/classExpressionTest1.js b/tests/baselines/reference/classExpressionTest1.js new file mode 100644 index 0000000000..e91cdebb8c --- /dev/null +++ b/tests/baselines/reference/classExpressionTest1.js @@ -0,0 +1,29 @@ +//// [classExpressionTest1.ts] +function M() { + class C { + f() { + var t: T; + var x: X; + return { t, x }; + } + } + + var v = new C(); + return v.f(); +} + +//// [classExpressionTest1.js] +function M() { + var C = (function () { + function C() { + } + C.prototype.f = function () { + var t; + var x; + return { t: t, x: x }; + }; + return C; + })(); + var v = new C(); + return v.f(); +} diff --git a/tests/baselines/reference/classExpressionTest2.errors.txt b/tests/baselines/reference/classExpressionTest2.errors.txt new file mode 100644 index 0000000000..424eb59061 --- /dev/null +++ b/tests/baselines/reference/classExpressionTest2.errors.txt @@ -0,0 +1,21 @@ +tests/cases/compiler/classExpressionTest2.ts(2,19): error TS9003: 'class' expressions are not currently supported. +tests/cases/compiler/classExpressionTest2.ts(5,20): error TS2304: Cannot find name 'X'. + + +==== tests/cases/compiler/classExpressionTest2.ts (2 errors) ==== + function M() { + var m = class C { + ~ +!!! error TS9003: 'class' expressions are not currently supported. + f() { + var t: T; + var x: X; + ~ +!!! error TS2304: Cannot find name 'X'. + return { t, x }; + } + } + + var v = new m(); + return v.f(); + } \ No newline at end of file diff --git a/tests/baselines/reference/classExpressionTest2.js b/tests/baselines/reference/classExpressionTest2.js new file mode 100644 index 0000000000..ebb5c1e21b --- /dev/null +++ b/tests/baselines/reference/classExpressionTest2.js @@ -0,0 +1,29 @@ +//// [classExpressionTest2.ts] +function M() { + var m = class C { + f() { + var t: T; + var x: X; + return { t, x }; + } + } + + var v = new m(); + return v.f(); +} + +//// [classExpressionTest2.js] +function M() { + var m = (function () { + function C() { + } + C.prototype.f = function () { + var t; + var x; + return { t: t, x: x }; + }; + return C; + })(); + var v = new m(); + return v.f(); +} diff --git a/tests/cases/compiler/classExpressionTest1.ts b/tests/cases/compiler/classExpressionTest1.ts new file mode 100644 index 0000000000..b299a2fd73 --- /dev/null +++ b/tests/cases/compiler/classExpressionTest1.ts @@ -0,0 +1,12 @@ +function M() { + class C { + f() { + var t: T; + var x: X; + return { t, x }; + } + } + + var v = new C(); + return v.f(); +} \ No newline at end of file diff --git a/tests/cases/compiler/classExpressionTest2.ts b/tests/cases/compiler/classExpressionTest2.ts new file mode 100644 index 0000000000..c0b9792b82 --- /dev/null +++ b/tests/cases/compiler/classExpressionTest2.ts @@ -0,0 +1,12 @@ +function M() { + var m = class C { + f() { + var t: T; + var x: X; + return { t, x }; + } + } + + var v = new m(); + return v.f(); +} \ No newline at end of file