Organize test cases for strict mode

This commit is contained in:
Yui T 2015-04-11 12:15:47 -07:00
parent 3c2196bf54
commit 65b8792be7
41 changed files with 663 additions and 414 deletions

View File

@ -0,0 +1,25 @@
tests/cases/compiler/errorRecoveryInClassDeclaration.ts(3,17): error TS2304: Cannot find name 'foo'.
tests/cases/compiler/errorRecoveryInClassDeclaration.ts(4,13): error TS2304: Cannot find name 'public'.
tests/cases/compiler/errorRecoveryInClassDeclaration.ts(4,20): error TS1005: ',' expected.
tests/cases/compiler/errorRecoveryInClassDeclaration.ts(4,20): error TS2304: Cannot find name 'blaz'.
tests/cases/compiler/errorRecoveryInClassDeclaration.ts(4,27): error TS1005: ',' expected.
==== tests/cases/compiler/errorRecoveryInClassDeclaration.ts (5 errors) ====
class C {
public bar() {
var v = foo(
~~~
!!! error TS2304: Cannot find name 'foo'.
public blaz() {}
~~~~~~
!!! error TS2304: Cannot find name 'public'.
~~~~
!!! error TS1005: ',' expected.
~~~~
!!! error TS2304: Cannot find name 'blaz'.
~
!!! error TS1005: ',' expected.
);
}
}

View File

@ -1,4 +1,4 @@
//// [strictModeCode4.ts]
//// [errorRecoveryInClassDeclaration.ts]
class C {
public bar() {
var v = foo(
@ -7,7 +7,7 @@ class C {
}
}
//// [strictModeCode4.js]
//// [errorRecoveryInClassDeclaration.js]
var C = (function () {
function C() {
}

View File

@ -0,0 +1,85 @@
tests/cases/compiler/reservedWords2.ts(1,1): error TS1148: Cannot compile external modules unless the '--module' flag is provided.
tests/cases/compiler/reservedWords2.ts(1,8): error TS1109: Expression expected.
tests/cases/compiler/reservedWords2.ts(1,14): error TS1005: '(' expected.
tests/cases/compiler/reservedWords2.ts(1,16): error TS2304: Cannot find name 'require'.
tests/cases/compiler/reservedWords2.ts(1,31): error TS1005: ')' expected.
tests/cases/compiler/reservedWords2.ts(2,12): error TS2300: Duplicate identifier '(Missing)'.
tests/cases/compiler/reservedWords2.ts(2,14): error TS1003: Identifier expected.
tests/cases/compiler/reservedWords2.ts(2,20): error TS1005: '(' expected.
tests/cases/compiler/reservedWords2.ts(2,20): error TS2304: Cannot find name 'from'.
tests/cases/compiler/reservedWords2.ts(2,25): error TS1005: ')' expected.
tests/cases/compiler/reservedWords2.ts(4,5): error TS1134: Variable declaration expected.
tests/cases/compiler/reservedWords2.ts(4,12): error TS1109: Expression expected.
tests/cases/compiler/reservedWords2.ts(5,9): error TS2300: Duplicate identifier '(Missing)'.
tests/cases/compiler/reservedWords2.ts(5,10): error TS1003: Identifier expected.
tests/cases/compiler/reservedWords2.ts(5,18): error TS1005: '=>' expected.
tests/cases/compiler/reservedWords2.ts(6,7): error TS2300: Duplicate identifier '(Missing)'.
tests/cases/compiler/reservedWords2.ts(6,8): error TS1003: Identifier expected.
tests/cases/compiler/reservedWords2.ts(9,6): error TS1181: Array element destructuring pattern expected.
tests/cases/compiler/reservedWords2.ts(9,14): error TS1005: ';' expected.
tests/cases/compiler/reservedWords2.ts(9,18): error TS1005: '(' expected.
tests/cases/compiler/reservedWords2.ts(9,20): error TS1128: Declaration or statement expected.
tests/cases/compiler/reservedWords2.ts(10,5): error TS2300: Duplicate identifier '(Missing)'.
tests/cases/compiler/reservedWords2.ts(10,6): error TS1003: Identifier expected.
==== tests/cases/compiler/reservedWords2.ts (23 errors) ====
import while = require("dfdf");
~~~~~~
!!! error TS1148: Cannot compile external modules unless the '--module' flag is provided.
~~~~~
!!! error TS1109: Expression expected.
~
!!! error TS1005: '(' expected.
~~~~~~~
!!! error TS2304: Cannot find name 'require'.
~
!!! error TS1005: ')' expected.
import * as while from "foo"
!!! error TS2300: Duplicate identifier '(Missing)'.
~~~~~
!!! error TS1003: Identifier expected.
~~~~
!!! error TS1005: '(' expected.
~~~~
!!! error TS2304: Cannot find name 'from'.
~~~~~
!!! error TS1005: ')' expected.
var typeof = 10;
~~~~~~
!!! error TS1134: Variable declaration expected.
~
!!! error TS1109: Expression expected.
function throw() {}
!!! error TS2300: Duplicate identifier '(Missing)'.
~~~~~
!!! error TS1003: Identifier expected.
~
!!! error TS1005: '=>' expected.
module void {}
!!! error TS2300: Duplicate identifier '(Missing)'.
~~~~
!!! error TS1003: Identifier expected.
var {while, return} = { while: 1, return: 2 };
var {this, switch: { continue} } = { this: 1, switch: { continue: 2 }};
var [debugger, if] = [1, 2];
~~~~~~~~
!!! error TS1181: Array element destructuring pattern expected.
~
!!! error TS1005: ';' expected.
~
!!! error TS1005: '(' expected.
~
!!! error TS1128: Declaration or statement expected.
enum void {}
!!! error TS2300: Duplicate identifier '(Missing)'.
~~~~
!!! error TS1003: Identifier expected.

View File

@ -0,0 +1,37 @@
//// [reservedWords2.ts]
import while = require("dfdf");
import * as while from "foo"
var typeof = 10;
function throw() {}
module void {}
var {while, return} = { while: 1, return: 2 };
var {this, switch: { continue} } = { this: 1, switch: { continue: 2 }};
var [debugger, if] = [1, 2];
enum void {}
//// [reservedWords2.js]
require();
while ( = require("dfdf"))
;
while (from)
"foo";
var ;
typeof ;
10;
throw function () { };
void {};
var _a = { while: 1, return: 2 }, while = _a.while, return = _a.return;
var _b = { this: 1, switch: { continue: 2 } }, this = _b.this, continue = _b.switch.continue;
var _c = void 0;
debugger;
if ()
;
[1, 2];
var ;
(function () {
})( || ( = {}));
void {};

View File

@ -1,103 +0,0 @@
tests/cases/compiler/strictModeCode1.ts(4,17): error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(4,26): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(4,34): error TS1213: Identifier expected. 'static' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(5,9): error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(5,19): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(5,28): error TS1213: Identifier expected. 'static' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(7,22): error TS1216: Type expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(11,24): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(11,32): error TS1213: Identifier expected. 'let' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(13,10): error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(13,19): error TS1213: Identifier expected. 'static' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(13,27): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(14,18): error TS1213: Identifier expected. 'let' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(21,9): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(21,17): error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(23,20): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(25,20): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(25,20): error TS2304: Cannot find name 'public'.
tests/cases/compiler/strictModeCode1.ts(26,21): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(26,21): error TS2304: Cannot find name 'public'.
tests/cases/compiler/strictModeCode1.ts(27,17): error TS1213: Identifier expected. 'package' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(27,17): error TS2304: Cannot find name 'package'.
tests/cases/compiler/strictModeCode1.ts(28,17): error TS1213: Identifier expected. 'package' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeCode1.ts(28,17): error TS2304: Cannot find name 'package'.
==== tests/cases/compiler/strictModeCode1.ts (24 errors) ====
interface public { }
class Foo {
constructor(private, public, static) {
~~~~~~~
!!! error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~
!!! error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~
!!! error TS1213: Identifier expected. 'static' is a reserved word in strict mode. Class definitions are automatically in strict mode.
private = public = static;
~~~~~~~
!!! error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~
!!! error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~
!!! error TS1213: Identifier expected. 'static' is a reserved word in strict mode. Class definitions are automatically in strict mode.
}
public banana(x: public) { }
~~~~~~
!!! error TS1216: Type expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
}
class C {
constructor(public public, let) {
~~~~~~
!!! error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~
!!! error TS1213: Identifier expected. 'let' is a reserved word in strict mode. Class definitions are automatically in strict mode.
}
foo1(private, static, public) {
~~~~~~~
!!! error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~
!!! error TS1213: Identifier expected. 'static' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~
!!! error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
function let() { }
~~~
!!! error TS1213: Identifier expected. 'let' is a reserved word in strict mode. Class definitions are automatically in strict mode.
var z = function let() { };
}
public pulbic() { } // No Error;
}
class D<public, private>{ }
~~~~~~
!!! error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~~
!!! error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode.
class E implements public { }
~~~~~~
!!! error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
class F implements public.private.B { }
~~~~~~
!!! error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~
!!! error TS2304: Cannot find name 'public'.
class F1 implements public.private.implements { }
~~~~~~
!!! error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~
!!! error TS2304: Cannot find name 'public'.
class G extends package { }
~~~~~~~
!!! error TS1213: Identifier expected. 'package' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~~
!!! error TS2304: Cannot find name 'package'.
class H extends package.A { }
~~~~~~~
!!! error TS1213: Identifier expected. 'package' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~~
!!! error TS2304: Cannot find name 'package'.

View File

@ -1,136 +0,0 @@
tests/cases/compiler/strictModeCode2.ts(5,9): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(6,9): error TS1212: Identifier expected. 'static' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(7,9): error TS1212: Identifier expected. 'let' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(8,9): error TS1212: Identifier expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(8,9): error TS2300: Duplicate identifier 'package'.
tests/cases/compiler/strictModeCode2.ts(9,14): error TS1212: Identifier expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(9,14): error TS2300: Duplicate identifier 'package'.
tests/cases/compiler/strictModeCode2.ts(10,18): error TS1212: Identifier expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(10,27): error TS1212: Identifier expected. 'implements' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(10,39): error TS1212: Identifier expected. 'let' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(11,18): error TS1212: Identifier expected. 'implements' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(11,30): error TS1212: Identifier expected. 'protected' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(12,24): error TS1212: Identifier expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(12,33): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(12,41): error TS1212: Identifier expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(13,11): error TS1212: Identifier expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(13,20): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(13,28): error TS1212: Identifier expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(15,25): error TS9003: 'class' expressions are not currently supported.
tests/cases/compiler/strictModeCode2.ts(17,9): error TS2300: Duplicate identifier 'b'.
tests/cases/compiler/strictModeCode2.ts(17,12): error TS1215: Type expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(17,12): error TS2304: Cannot find name 'public'.
tests/cases/compiler/strictModeCode2.ts(19,21): error TS1215: Type expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(19,21): error TS2304: Cannot find name 'private'.
tests/cases/compiler/strictModeCode2.ts(20,22): error TS1215: Type expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(20,22): error TS2304: Cannot find name 'private'.
tests/cases/compiler/strictModeCode2.ts(20,30): error TS1215: Type expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(21,22): error TS1215: Type expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(21,22): error TS2304: Cannot find name 'private'.
tests/cases/compiler/strictModeCode2.ts(21,30): error TS1215: Type expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(21,38): error TS1215: Type expected. 'protected' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(22,9): error TS2300: Duplicate identifier 'b'.
tests/cases/compiler/strictModeCode2.ts(22,12): error TS1215: Type expected. 'interface' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(22,12): error TS2304: Cannot find name 'interface'.
tests/cases/compiler/strictModeCode2.ts(22,22): error TS1215: Type expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeCode2.ts(22,30): error TS1215: Type expected. 'implements' is a reserved word in strict mode
==== tests/cases/compiler/strictModeCode2.ts (36 errors) ====
let let = 10;
function foo() {
"use strict"
var public = 10;
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
var static = "hi";
~~~~~~
!!! error TS1212: Identifier expected. 'static' is a reserved word in strict mode
let let = "blah";
~~~
!!! error TS1212: Identifier expected. 'let' is a reserved word in strict mode
var package = "hello"
~~~~~~~
!!! error TS1212: Identifier expected. 'package' is a reserved word in strict mode
~~~~~~~
!!! error TS2300: Duplicate identifier 'package'.
function package() { }
~~~~~~~
!!! error TS1212: Identifier expected. 'package' is a reserved word in strict mode
~~~~~~~
!!! error TS2300: Duplicate identifier 'package'.
function bar(private, implements, let) { }
~~~~~~~
!!! error TS1212: Identifier expected. 'private' is a reserved word in strict mode
~~~~~~~~~~
!!! error TS1212: Identifier expected. 'implements' is a reserved word in strict mode
~~~
!!! error TS1212: Identifier expected. 'let' is a reserved word in strict mode
function baz<implements, protected>() { }
~~~~~~~~~~
!!! error TS1212: Identifier expected. 'implements' is a reserved word in strict mode
~~~~~~~~~
!!! error TS1212: Identifier expected. 'protected' is a reserved word in strict mode
function barn(cb: (private, public, package) => void) { }
~~~~~~~
!!! error TS1212: Identifier expected. 'private' is a reserved word in strict mode
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
~~~~~~~
!!! error TS1212: Identifier expected. 'package' is a reserved word in strict mode
barn((private, public, package) => { });
~~~~~~~
!!! error TS1212: Identifier expected. 'private' is a reserved word in strict mode
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
~~~~~~~
!!! error TS1212: Identifier expected. 'package' is a reserved word in strict mode
var myClass = class package extends public {}
~~~~~~~
!!! error TS9003: 'class' expressions are not currently supported.
var b: public.bar;
~
!!! error TS2300: Duplicate identifier 'b'.
~~~~~~
!!! error TS1215: Type expected. 'public' is a reserved word in strict mode
~~~~~~
!!! error TS2304: Cannot find name 'public'.
function foo(x: private.x) { }
~~~~~~~
!!! error TS1215: Type expected. 'private' is a reserved word in strict mode
~~~~~~~
!!! error TS2304: Cannot find name 'private'.
function foo1(x: private.package.x) { }
~~~~~~~
!!! error TS1215: Type expected. 'private' is a reserved word in strict mode
~~~~~~~
!!! error TS2304: Cannot find name 'private'.
~~~~~~~
!!! error TS1215: Type expected. 'package' is a reserved word in strict mode
function foo2(x: private.package.protected) { }
~~~~~~~
!!! error TS1215: Type expected. 'private' is a reserved word in strict mode
~~~~~~~
!!! error TS2304: Cannot find name 'private'.
~~~~~~~
!!! error TS1215: Type expected. 'package' is a reserved word in strict mode
~~~~~~~~~
!!! error TS1215: Type expected. 'protected' is a reserved word in strict mode
let b: interface.package.implements.B;
~
!!! error TS2300: Duplicate identifier 'b'.
~~~~~~~~~
!!! error TS1215: Type expected. 'interface' is a reserved word in strict mode
~~~~~~~~~
!!! error TS2304: Cannot find name 'interface'.
~~~~~~~
!!! error TS1215: Type expected. 'package' is a reserved word in strict mode
~~~~~~~~~~
!!! error TS1215: Type expected. 'implements' is a reserved word in strict mode
}

View File

@ -1,24 +0,0 @@
tests/cases/compiler/strictModeCode3.ts(2,11): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeCode3.ts(3,11): error TS1212: Identifier expected. 'implements' is a reserved word in strict mode
tests/cases/compiler/strictModeCode3.ts(4,9): error TS1212: Identifier expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeCode3.ts(4,18): error TS1212: Identifier expected. 'protected' is a reserved word in strict mode
tests/cases/compiler/strictModeCode3.ts(6,6): error TS1212: Identifier expected. 'package' is a reserved word in strict mode
==== tests/cases/compiler/strictModeCode3.ts (5 errors) ====
"use strict"
interface public { }
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
interface implements {
~~~~~~~~~~
!!! error TS1212: Identifier expected. 'implements' is a reserved word in strict mode
foo(package, protected);
~~~~~~~
!!! error TS1212: Identifier expected. 'package' is a reserved word in strict mode
~~~~~~~~~
!!! error TS1212: Identifier expected. 'protected' is a reserved word in strict mode
}
enum package { }
~~~~~~~
!!! error TS1212: Identifier expected. 'package' is a reserved word in strict mode

View File

@ -1,13 +0,0 @@
//// [strictModeCode3.ts]
"use strict"
interface public { }
interface implements {
foo(package, protected);
}
enum package { }
//// [strictModeCode3.js]
"use strict";
var package;
(function (package) {
})(package || (package = {}));

View File

@ -1,25 +0,0 @@
tests/cases/compiler/strictModeCode4.ts(3,17): error TS2304: Cannot find name 'foo'.
tests/cases/compiler/strictModeCode4.ts(4,13): error TS2304: Cannot find name 'public'.
tests/cases/compiler/strictModeCode4.ts(4,20): error TS1005: ',' expected.
tests/cases/compiler/strictModeCode4.ts(4,20): error TS2304: Cannot find name 'blaz'.
tests/cases/compiler/strictModeCode4.ts(4,27): error TS1005: ',' expected.
==== tests/cases/compiler/strictModeCode4.ts (5 errors) ====
class C {
public bar() {
var v = foo(
~~~
!!! error TS2304: Cannot find name 'foo'.
public blaz() {}
~~~~~~
!!! error TS2304: Cannot find name 'public'.
~~~~
!!! error TS1005: ',' expected.
~~~~
!!! error TS2304: Cannot find name 'blaz'.
~
!!! error TS1005: ',' expected.
);
}
}

View File

@ -1,30 +0,0 @@
tests/cases/compiler/strictModeCode5.ts(2,6): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeCode5.ts(3,10): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeCode5.ts(4,7): error TS1212: Identifier expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeCode5.ts(5,15): error TS1212: Identifier expected. 'static' is a reserved word in strict mode
tests/cases/compiler/strictModeCode5.ts(5,38): error TS1212: Identifier expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeCode5.ts(6,6): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeCode5.ts(6,14): error TS1212: Identifier expected. 'protected' is a reserved word in strict mode
==== tests/cases/compiler/strictModeCode5.ts (7 errors) ====
"use strict"
var [public] = [1];
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
var { x: public } = { x: 1 };
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
var [[private]] = [["hello"]];
~~~~~~~
!!! error TS1212: Identifier expected. 'private' is a reserved word in strict mode
var { y: { s: static }, z: { o: { p: package} }} = { y: { s: 1 }, z: { o: { p: 'h' } } };
~~~~~~
!!! error TS1212: Identifier expected. 'static' is a reserved word in strict mode
~~~~~~~
!!! error TS1212: Identifier expected. 'package' is a reserved word in strict mode
var {public, protected} = { public: 1, protected: 2 };
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
~~~~~~~~~
!!! error TS1212: Identifier expected. 'protected' is a reserved word in strict mode

View File

@ -1,22 +0,0 @@
tests/cases/compiler/strictModeCode6.ts(2,13): error TS1212: Identifier expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeCode6.ts(2,26): error TS2307: Cannot find external module './1'.
tests/cases/compiler/strictModeCode6.ts(3,16): error TS1212: Identifier expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeCode6.ts(3,30): error TS2307: Cannot find external module './1'.
tests/cases/compiler/strictModeCode6.ts(4,20): error TS2307: Cannot find external module './1'.
==== tests/cases/compiler/strictModeCode6.ts (5 errors) ====
"use strict"
import * as package from "./1"
~~~~~~~
!!! error TS1212: Identifier expected. 'package' is a reserved word in strict mode
~~~~~
!!! error TS2307: Cannot find external module './1'.
import {foo as private} from "./1"
~~~~~~~
!!! error TS1212: Identifier expected. 'private' is a reserved word in strict mode
~~~~~
!!! error TS2307: Cannot find external module './1'.
import public from "./1"
~~~~~
!!! error TS2307: Cannot find external module './1'.

View File

@ -1,12 +0,0 @@
tests/cases/compiler/strictModeCode7.ts(3,8): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeCode7.ts(3,25): error TS2307: Cannot find external module '1'.
==== tests/cases/compiler/strictModeCode7.ts (2 errors) ====
"use strict"
import public = require("1");
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
~~~
!!! error TS2307: Cannot find external module '1'.

View File

@ -1,7 +0,0 @@
//// [strictModeCode7.ts]
"use strict"
import public = require("1");
//// [strictModeCode7.js]
"use strict";

View File

@ -1,24 +0,0 @@
tests/cases/compiler/strictModeCode8.ts(2,8): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeCode8.ts(3,8): error TS1212: Identifier expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeCode8.ts(4,8): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeCode8.ts(6,8): error TS1212: Identifier expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeCode8.ts(6,16): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
==== tests/cases/compiler/strictModeCode8.ts (5 errors) ====
"use strict"
module public { }
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
module private { }
~~~~~~~
!!! error TS1212: Identifier expected. 'private' is a reserved word in strict mode
module public.whatever {
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
}
module private.public.foo { }
~~~~~~~
!!! error TS1212: Identifier expected. 'private' is a reserved word in strict mode
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode

View File

@ -0,0 +1,147 @@
tests/cases/compiler/strictModeReservedWord.ts(5,9): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(6,9): error TS1212: Identifier expected. 'static' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(7,9): error TS1212: Identifier expected. 'let' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(8,9): error TS1212: Identifier expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(8,9): error TS2300: Duplicate identifier 'package'.
tests/cases/compiler/strictModeReservedWord.ts(9,14): error TS1212: Identifier expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(9,14): error TS2300: Duplicate identifier 'package'.
tests/cases/compiler/strictModeReservedWord.ts(10,18): error TS1212: Identifier expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(10,27): error TS1212: Identifier expected. 'implements' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(10,39): error TS1212: Identifier expected. 'let' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(11,18): error TS1212: Identifier expected. 'implements' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(11,30): error TS1212: Identifier expected. 'protected' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(12,24): error TS1212: Identifier expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(12,33): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(12,41): error TS1212: Identifier expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(13,11): error TS1212: Identifier expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(13,20): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(13,28): error TS1212: Identifier expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(15,25): error TS9003: 'class' expressions are not currently supported.
tests/cases/compiler/strictModeReservedWord.ts(17,9): error TS2300: Duplicate identifier 'b'.
tests/cases/compiler/strictModeReservedWord.ts(17,12): error TS1215: Type expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(17,12): error TS2304: Cannot find name 'public'.
tests/cases/compiler/strictModeReservedWord.ts(19,21): error TS1215: Type expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(19,21): error TS2304: Cannot find name 'private'.
tests/cases/compiler/strictModeReservedWord.ts(20,22): error TS1215: Type expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(20,22): error TS2304: Cannot find name 'private'.
tests/cases/compiler/strictModeReservedWord.ts(20,30): error TS1215: Type expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(21,22): error TS1215: Type expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(21,22): error TS2304: Cannot find name 'private'.
tests/cases/compiler/strictModeReservedWord.ts(21,30): error TS1215: Type expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(21,38): error TS1215: Type expected. 'protected' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(22,9): error TS2300: Duplicate identifier 'b'.
tests/cases/compiler/strictModeReservedWord.ts(22,12): error TS1215: Type expected. 'interface' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(22,12): error TS2304: Cannot find name 'interface'.
tests/cases/compiler/strictModeReservedWord.ts(22,22): error TS1215: Type expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(22,30): error TS1215: Type expected. 'implements' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(23,5): error TS2304: Cannot find name 'ublic'.
tests/cases/compiler/strictModeReservedWord.ts(24,5): error TS1212: Identifier expected. 'static' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord.ts(24,5): error TS2349: Cannot invoke an expression whose type lacks a call signature.
==== tests/cases/compiler/strictModeReservedWord.ts (39 errors) ====
let let = 10;
function foo() {
"use strict"
var public = 10;
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
var static = "hi";
~~~~~~
!!! error TS1212: Identifier expected. 'static' is a reserved word in strict mode
let let = "blah";
~~~
!!! error TS1212: Identifier expected. 'let' is a reserved word in strict mode
var package = "hello"
~~~~~~~
!!! error TS1212: Identifier expected. 'package' is a reserved word in strict mode
~~~~~~~
!!! error TS2300: Duplicate identifier 'package'.
function package() { }
~~~~~~~
!!! error TS1212: Identifier expected. 'package' is a reserved word in strict mode
~~~~~~~
!!! error TS2300: Duplicate identifier 'package'.
function bar(private, implements, let) { }
~~~~~~~
!!! error TS1212: Identifier expected. 'private' is a reserved word in strict mode
~~~~~~~~~~
!!! error TS1212: Identifier expected. 'implements' is a reserved word in strict mode
~~~
!!! error TS1212: Identifier expected. 'let' is a reserved word in strict mode
function baz<implements, protected>() { }
~~~~~~~~~~
!!! error TS1212: Identifier expected. 'implements' is a reserved word in strict mode
~~~~~~~~~
!!! error TS1212: Identifier expected. 'protected' is a reserved word in strict mode
function barn(cb: (private, public, package) => void) { }
~~~~~~~
!!! error TS1212: Identifier expected. 'private' is a reserved word in strict mode
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
~~~~~~~
!!! error TS1212: Identifier expected. 'package' is a reserved word in strict mode
barn((private, public, package) => { });
~~~~~~~
!!! error TS1212: Identifier expected. 'private' is a reserved word in strict mode
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
~~~~~~~
!!! error TS1212: Identifier expected. 'package' is a reserved word in strict mode
var myClass = class package extends public {}
~~~~~~~
!!! error TS9003: 'class' expressions are not currently supported.
var b: public.bar;
~
!!! error TS2300: Duplicate identifier 'b'.
~~~~~~
!!! error TS1215: Type expected. 'public' is a reserved word in strict mode
~~~~~~
!!! error TS2304: Cannot find name 'public'.
function foo(x: private.x) { }
~~~~~~~
!!! error TS1215: Type expected. 'private' is a reserved word in strict mode
~~~~~~~
!!! error TS2304: Cannot find name 'private'.
function foo1(x: private.package.x) { }
~~~~~~~
!!! error TS1215: Type expected. 'private' is a reserved word in strict mode
~~~~~~~
!!! error TS2304: Cannot find name 'private'.
~~~~~~~
!!! error TS1215: Type expected. 'package' is a reserved word in strict mode
function foo2(x: private.package.protected) { }
~~~~~~~
!!! error TS1215: Type expected. 'private' is a reserved word in strict mode
~~~~~~~
!!! error TS2304: Cannot find name 'private'.
~~~~~~~
!!! error TS1215: Type expected. 'package' is a reserved word in strict mode
~~~~~~~~~
!!! error TS1215: Type expected. 'protected' is a reserved word in strict mode
let b: interface.package.implements.B;
~
!!! error TS2300: Duplicate identifier 'b'.
~~~~~~~~~
!!! error TS1215: Type expected. 'interface' is a reserved word in strict mode
~~~~~~~~~
!!! error TS2304: Cannot find name 'interface'.
~~~~~~~
!!! error TS1215: Type expected. 'package' is a reserved word in strict mode
~~~~~~~~~~
!!! error TS1215: Type expected. 'implements' is a reserved word in strict mode
ublic();
~~~~~
!!! error TS2304: Cannot find name 'ublic'.
static();
~~~~~~
!!! error TS1212: Identifier expected. 'static' is a reserved word in strict mode
~~~~~~~~
!!! error TS2349: Cannot invoke an expression whose type lacks a call signature.
}

View File

@ -1,4 +1,4 @@
//// [strictModeCode2.ts]
//// [strictModeReservedWord.ts]
let let = 10;
function foo() {
@ -21,11 +21,13 @@ function foo() {
function foo1(x: private.package.x) { }
function foo2(x: private.package.protected) { }
let b: interface.package.implements.B;
ublic();
static();
}
//// [strictModeCode2.js]
//// [strictModeReservedWord.js]
var let = 10;
function foo() {
"use strict";
@ -50,4 +52,6 @@ function foo() {
function foo1(x) { }
function foo2(x) { }
var b;
ublic();
static();
}

View File

@ -0,0 +1,45 @@
tests/cases/compiler/strictModeReservedWord2.ts(2,11): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord2.ts(3,11): error TS1212: Identifier expected. 'implements' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord2.ts(4,9): error TS1212: Identifier expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord2.ts(4,18): error TS1212: Identifier expected. 'protected' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord2.ts(6,6): error TS1212: Identifier expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWord2.ts(13,12): error TS1212: Identifier expected. 'private' is a reserved word in strict mode
==== tests/cases/compiler/strictModeReservedWord2.ts (6 errors) ====
"use strict"
interface public { }
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
interface implements {
~~~~~~~~~~
!!! error TS1212: Identifier expected. 'implements' is a reserved word in strict mode
foo(package, protected);
~~~~~~~
!!! error TS1212: Identifier expected. 'package' is a reserved word in strict mode
~~~~~~~~~
!!! error TS1212: Identifier expected. 'protected' is a reserved word in strict mode
}
enum package { }
~~~~~~~
!!! error TS1212: Identifier expected. 'package' is a reserved word in strict mode
enum foo {
public,
private,
pacakge
}
const enum private {
~~~~~~~
!!! error TS1212: Identifier expected. 'private' is a reserved word in strict mode
public,
private,
pacakge
}
const enum bar {
public,
private,
pacakge
}

View File

@ -0,0 +1,37 @@
//// [strictModeReservedWord2.ts]
"use strict"
interface public { }
interface implements {
foo(package, protected);
}
enum package { }
enum foo {
public,
private,
pacakge
}
const enum private {
public,
private,
pacakge
}
const enum bar {
public,
private,
pacakge
}
//// [strictModeReservedWord2.js]
"use strict";
var package;
(function (package) {
})(package || (package = {}));
var foo;
(function (foo) {
foo[foo["public"] = 0] = "public";
foo[foo["private"] = 1] = "private";
foo[foo["pacakge"] = 2] = "pacakge";
})(foo || (foo = {}));

View File

@ -0,0 +1,103 @@
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(4,17): error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(4,26): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(4,34): error TS1213: Identifier expected. 'static' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(5,9): error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(5,19): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(5,28): error TS1213: Identifier expected. 'static' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(7,22): error TS1216: Type expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(11,24): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(11,32): error TS1213: Identifier expected. 'let' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(13,10): error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(13,19): error TS1213: Identifier expected. 'static' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(13,27): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(14,18): error TS1213: Identifier expected. 'let' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(21,9): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(21,17): error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(23,20): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(25,20): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(25,20): error TS2304: Cannot find name 'public'.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(26,21): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(26,21): error TS2304: Cannot find name 'public'.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(27,17): error TS1213: Identifier expected. 'package' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(27,17): error TS2304: Cannot find name 'package'.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(28,17): error TS1213: Identifier expected. 'package' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts(28,17): error TS2304: Cannot find name 'package'.
==== tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts (24 errors) ====
interface public { }
class Foo {
constructor(private, public, static) {
~~~~~~~
!!! error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~
!!! error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~
!!! error TS1213: Identifier expected. 'static' is a reserved word in strict mode. Class definitions are automatically in strict mode.
private = public = static;
~~~~~~~
!!! error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~
!!! error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~
!!! error TS1213: Identifier expected. 'static' is a reserved word in strict mode. Class definitions are automatically in strict mode.
}
public banana(x: public) { }
~~~~~~
!!! error TS1216: Type expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
}
class C {
constructor(public public, let) {
~~~~~~
!!! error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~
!!! error TS1213: Identifier expected. 'let' is a reserved word in strict mode. Class definitions are automatically in strict mode.
}
foo1(private, static, public) {
~~~~~~~
!!! error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~
!!! error TS1213: Identifier expected. 'static' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~
!!! error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
function let() { }
~~~
!!! error TS1213: Identifier expected. 'let' is a reserved word in strict mode. Class definitions are automatically in strict mode.
var z = function let() { };
}
public pulbic() { } // No Error;
}
class D<public, private>{ }
~~~~~~
!!! error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~~
!!! error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode.
class E implements public { }
~~~~~~
!!! error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
class F implements public.private.B { }
~~~~~~
!!! error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~
!!! error TS2304: Cannot find name 'public'.
class F1 implements public.private.implements { }
~~~~~~
!!! error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~
!!! error TS2304: Cannot find name 'public'.
class G extends package { }
~~~~~~~
!!! error TS1213: Identifier expected. 'package' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~~
!!! error TS2304: Cannot find name 'package'.
class H extends package.A { }
~~~~~~~
!!! error TS1213: Identifier expected. 'package' is a reserved word in strict mode. Class definitions are automatically in strict mode.
~~~~~~~
!!! error TS2304: Cannot find name 'package'.

View File

@ -1,4 +1,4 @@
//// [strictModeCode1.ts]
//// [strictModeReservedWordInClassDeclaration.ts]
interface public { }
class Foo {
@ -28,7 +28,7 @@ class F1 implements public.private.implements { }
class G extends package { }
class H extends package.A { }
//// [strictModeCode1.js]
//// [strictModeReservedWordInClassDeclaration.js]
var __extends = this.__extends || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }

View File

@ -0,0 +1,30 @@
tests/cases/compiler/strictModeReservedWordInDestructuring.ts(2,6): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWordInDestructuring.ts(3,10): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWordInDestructuring.ts(4,7): error TS1212: Identifier expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWordInDestructuring.ts(5,15): error TS1212: Identifier expected. 'static' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWordInDestructuring.ts(5,38): error TS1212: Identifier expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWordInDestructuring.ts(6,6): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWordInDestructuring.ts(6,14): error TS1212: Identifier expected. 'protected' is a reserved word in strict mode
==== tests/cases/compiler/strictModeReservedWordInDestructuring.ts (7 errors) ====
"use strict"
var [public] = [1];
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
var { x: public } = { x: 1 };
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
var [[private]] = [["hello"]];
~~~~~~~
!!! error TS1212: Identifier expected. 'private' is a reserved word in strict mode
var { y: { s: static }, z: { o: { p: package} }} = { y: { s: 1 }, z: { o: { p: 'h' } } };
~~~~~~
!!! error TS1212: Identifier expected. 'static' is a reserved word in strict mode
~~~~~~~
!!! error TS1212: Identifier expected. 'package' is a reserved word in strict mode
var {public, protected} = { public: 1, protected: 2 };
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
~~~~~~~~~
!!! error TS1212: Identifier expected. 'protected' is a reserved word in strict mode

View File

@ -1,4 +1,4 @@
//// [strictModeCode5.ts]
//// [strictModeReservedWordInDestructuring.ts]
"use strict"
var [public] = [1];
var { x: public } = { x: 1 };
@ -6,7 +6,7 @@ var [[private]] = [["hello"]];
var { y: { s: static }, z: { o: { p: package} }} = { y: { s: 1 }, z: { o: { p: 'h' } } };
var {public, protected} = { public: 1, protected: 2 };
//// [strictModeCode5.js]
//// [strictModeReservedWordInDestructuring.js]
"use strict";
var public = ([1])[0];
var public = ({ x: 1 }).x;

View File

@ -0,0 +1,12 @@
tests/cases/compiler/strictModeReservedWordInImportEqualDeclaration.ts(3,8): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWordInImportEqualDeclaration.ts(3,25): error TS2307: Cannot find external module '1'.
==== tests/cases/compiler/strictModeReservedWordInImportEqualDeclaration.ts (2 errors) ====
"use strict"
import public = require("1");
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
~~~
!!! error TS2307: Cannot find external module '1'.

View File

@ -0,0 +1,7 @@
//// [strictModeReservedWordInImportEqualDeclaration.ts]
"use strict"
import public = require("1");
//// [strictModeReservedWordInImportEqualDeclaration.js]
"use strict";

View File

@ -0,0 +1,24 @@
tests/cases/compiler/strictModeReservedWordInModuleDeclaration.ts(2,8): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWordInModuleDeclaration.ts(3,8): error TS1212: Identifier expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWordInModuleDeclaration.ts(4,8): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWordInModuleDeclaration.ts(6,8): error TS1212: Identifier expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeReservedWordInModuleDeclaration.ts(6,16): error TS1212: Identifier expected. 'public' is a reserved word in strict mode
==== tests/cases/compiler/strictModeReservedWordInModuleDeclaration.ts (5 errors) ====
"use strict"
module public { }
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
module private { }
~~~~~~~
!!! error TS1212: Identifier expected. 'private' is a reserved word in strict mode
module public.whatever {
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode
}
module private.public.foo { }
~~~~~~~
!!! error TS1212: Identifier expected. 'private' is a reserved word in strict mode
~~~~~~
!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode

View File

@ -1,4 +1,4 @@
//// [strictModeCode8.ts]
//// [strictModeReservedWordInModuleDeclaration.ts]
"use strict"
module public { }
module private { }
@ -6,5 +6,5 @@ module public.whatever {
}
module private.public.foo { }
//// [strictModeCode8.js]
//// [strictModeReservedWordInModuleDeclaration.js]
"use strict";

View File

@ -0,0 +1,13 @@
//// [strictModeWordInExportDeclaration.ts]
"use strict"
var x = 1;
export { x as foo }
export { x as implements }
export { x as while }
//// [strictModeWordInExportDeclaration.js]
"use strict";
var x = 1;
export { x as foo };
export { x as implements };
export { x as while };

View File

@ -0,0 +1,17 @@
=== tests/cases/compiler/strictModeWordInExportDeclaration.ts ===
"use strict"
var x = 1;
>x : number
export { x as foo }
>x : number
>foo : number
export { x as implements }
>x : number
>implements : number
export { x as while }
>x : number
>while : number

View File

@ -0,0 +1,22 @@
tests/cases/compiler/strictModeWordInImportDeclaration.ts(2,13): error TS1212: Identifier expected. 'package' is a reserved word in strict mode
tests/cases/compiler/strictModeWordInImportDeclaration.ts(2,26): error TS2307: Cannot find external module './1'.
tests/cases/compiler/strictModeWordInImportDeclaration.ts(3,16): error TS1212: Identifier expected. 'private' is a reserved word in strict mode
tests/cases/compiler/strictModeWordInImportDeclaration.ts(3,30): error TS2307: Cannot find external module './1'.
tests/cases/compiler/strictModeWordInImportDeclaration.ts(4,20): error TS2307: Cannot find external module './1'.
==== tests/cases/compiler/strictModeWordInImportDeclaration.ts (5 errors) ====
"use strict"
import * as package from "./1"
~~~~~~~
!!! error TS1212: Identifier expected. 'package' is a reserved word in strict mode
~~~~~
!!! error TS2307: Cannot find external module './1'.
import {foo as private} from "./1"
~~~~~~~
!!! error TS1212: Identifier expected. 'private' is a reserved word in strict mode
~~~~~
!!! error TS2307: Cannot find external module './1'.
import public from "./1"
~~~~~
!!! error TS2307: Cannot find external module './1'.

View File

@ -1,8 +1,8 @@
//// [strictModeCode6.ts]
//// [strictModeWordInImportDeclaration.ts]
"use strict"
import * as package from "./1"
import {foo as private} from "./1"
import public from "./1"
//// [strictModeCode6.js]
//// [strictModeWordInImportDeclaration.js]
"use strict";

View File

@ -0,0 +1,12 @@
import while = require("dfdf");
import * as while from "foo"
var typeof = 10;
function throw() {}
module void {}
var {while, return} = { while: 1, return: 2 };
var {this, switch: { continue} } = { this: 1, switch: { continue: 2 }};
var [debugger, if] = [1, 2];
enum void {}

View File

@ -1,6 +0,0 @@
"use strict"
interface public { }
interface implements {
foo(package, protected);
}
enum package { }

View File

@ -20,5 +20,7 @@ function foo() {
function foo1(x: private.package.x) { }
function foo2(x: private.package.protected) { }
let b: interface.package.implements.B;
ublic();
static();
}

View File

@ -0,0 +1,23 @@
"use strict"
interface public { }
interface implements {
foo(package, protected);
}
enum package { }
enum foo {
public,
private,
pacakge
}
const enum private {
public,
private,
pacakge
}
const enum bar {
public,
private,
pacakge
}

View File

@ -0,0 +1,6 @@
// @target: ES6
"use strict"
var x = 1;
export { x as foo }
export { x as implements }
export { x as while }