Merge pull request #2573 from Microsoft/classExpressionTests

Adding a couple of class tests.
This commit is contained in:
CyrusNajmabadi 2015-03-31 18:57:42 -07:00
commit e34848d872
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>();
}