Adding a couple of class tests.

This commit is contained in:
Cyrus Najmabadi
2015-03-31 18:11:54 -07:00
parent adad7c18d5
commit 3df576d112
6 changed files with 121 additions and 0 deletions

View File

@@ -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<X> {
~
!!! error TS9004: 'class' declarations are only supported directly inside a module or as a top level declaration.
f<T>() {
var t: T;
var x: X;
return { t, x };
}
}
var v = new C<number>();
return v.f<string>();
}

View File

@@ -0,0 +1,29 @@
//// [classExpressionTest1.ts]
function M() {
class C<X> {
f<T>() {
var t: T;
var x: X;
return { t, x };
}
}
var v = new C<number>();
return v.f<string>();
}
//// [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();
}

View File

@@ -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<X> {
~
!!! error TS9003: 'class' expressions are not currently supported.
f<T>() {
var t: T;
var x: X;
~
!!! error TS2304: Cannot find name 'X'.
return { t, x };
}
}
var v = new m<number>();
return v.f<string>();
}

View File

@@ -0,0 +1,29 @@
//// [classExpressionTest2.ts]
function M() {
var m = class C<X> {
f<T>() {
var t: T;
var x: X;
return { t, x };
}
}
var v = new m<number>();
return v.f<string>();
}
//// [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();
}

View File

@@ -0,0 +1,12 @@
function M() {
class C<X> {
f<T>() {
var t: T;
var x: X;
return { t, x };
}
}
var v = new C<number>();
return v.f<string>();
}

View File

@@ -0,0 +1,12 @@
function M() {
var m = class C<X> {
f<T>() {
var t: T;
var x: X;
return { t, x };
}
}
var v = new m<number>();
return v.f<string>();
}