diff --git a/tests/baselines/reference/errorRecoveryInClassDeclaration.errors.txt b/tests/baselines/reference/errorRecoveryInClassDeclaration.errors.txt new file mode 100644 index 00000000000..0835a7f256d --- /dev/null +++ b/tests/baselines/reference/errorRecoveryInClassDeclaration.errors.txt @@ -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. + ); + } + } \ No newline at end of file diff --git a/tests/baselines/reference/strictModeCode4.js b/tests/baselines/reference/errorRecoveryInClassDeclaration.js similarity index 72% rename from tests/baselines/reference/strictModeCode4.js rename to tests/baselines/reference/errorRecoveryInClassDeclaration.js index cfc9f008e72..7f95bed19f9 100644 --- a/tests/baselines/reference/strictModeCode4.js +++ b/tests/baselines/reference/errorRecoveryInClassDeclaration.js @@ -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() { } diff --git a/tests/baselines/reference/reservedWords2.errors.txt b/tests/baselines/reference/reservedWords2.errors.txt new file mode 100644 index 00000000000..ec4b7b09887 --- /dev/null +++ b/tests/baselines/reference/reservedWords2.errors.txt @@ -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. + + + \ No newline at end of file diff --git a/tests/baselines/reference/reservedWords2.js b/tests/baselines/reference/reservedWords2.js new file mode 100644 index 00000000000..4bda38842a3 --- /dev/null +++ b/tests/baselines/reference/reservedWords2.js @@ -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 {}; diff --git a/tests/baselines/reference/strictModeCode1.errors.txt b/tests/baselines/reference/strictModeCode1.errors.txt deleted file mode 100644 index a9a2c50a6ca..00000000000 --- a/tests/baselines/reference/strictModeCode1.errors.txt +++ /dev/null @@ -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{ } - ~~~~~~ -!!! 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'. \ No newline at end of file diff --git a/tests/baselines/reference/strictModeCode2.errors.txt b/tests/baselines/reference/strictModeCode2.errors.txt deleted file mode 100644 index 3016f02af7a..00000000000 --- a/tests/baselines/reference/strictModeCode2.errors.txt +++ /dev/null @@ -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() { } - ~~~~~~~~~~ -!!! 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 - } - - \ No newline at end of file diff --git a/tests/baselines/reference/strictModeCode3.errors.txt b/tests/baselines/reference/strictModeCode3.errors.txt deleted file mode 100644 index be500ad1062..00000000000 --- a/tests/baselines/reference/strictModeCode3.errors.txt +++ /dev/null @@ -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 \ No newline at end of file diff --git a/tests/baselines/reference/strictModeCode3.js b/tests/baselines/reference/strictModeCode3.js deleted file mode 100644 index 596667f9925..00000000000 --- a/tests/baselines/reference/strictModeCode3.js +++ /dev/null @@ -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 = {})); diff --git a/tests/baselines/reference/strictModeCode4.errors.txt b/tests/baselines/reference/strictModeCode4.errors.txt deleted file mode 100644 index b9dc2c0dce7..00000000000 --- a/tests/baselines/reference/strictModeCode4.errors.txt +++ /dev/null @@ -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. - ); - } - } \ No newline at end of file diff --git a/tests/baselines/reference/strictModeCode5.errors.txt b/tests/baselines/reference/strictModeCode5.errors.txt deleted file mode 100644 index ac6d17e1bb9..00000000000 --- a/tests/baselines/reference/strictModeCode5.errors.txt +++ /dev/null @@ -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 \ No newline at end of file diff --git a/tests/baselines/reference/strictModeCode6.errors.txt b/tests/baselines/reference/strictModeCode6.errors.txt deleted file mode 100644 index dd1cb2dc433..00000000000 --- a/tests/baselines/reference/strictModeCode6.errors.txt +++ /dev/null @@ -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'. \ No newline at end of file diff --git a/tests/baselines/reference/strictModeCode7.errors.txt b/tests/baselines/reference/strictModeCode7.errors.txt deleted file mode 100644 index 066fd01b897..00000000000 --- a/tests/baselines/reference/strictModeCode7.errors.txt +++ /dev/null @@ -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'. \ No newline at end of file diff --git a/tests/baselines/reference/strictModeCode7.js b/tests/baselines/reference/strictModeCode7.js deleted file mode 100644 index eee01c59a27..00000000000 --- a/tests/baselines/reference/strictModeCode7.js +++ /dev/null @@ -1,7 +0,0 @@ -//// [strictModeCode7.ts] - -"use strict" -import public = require("1"); - -//// [strictModeCode7.js] -"use strict"; diff --git a/tests/baselines/reference/strictModeCode8.errors.txt b/tests/baselines/reference/strictModeCode8.errors.txt deleted file mode 100644 index 25b087e9016..00000000000 --- a/tests/baselines/reference/strictModeCode8.errors.txt +++ /dev/null @@ -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 \ No newline at end of file diff --git a/tests/baselines/reference/strictModeReservedWord.errors.txt b/tests/baselines/reference/strictModeReservedWord.errors.txt new file mode 100644 index 00000000000..9e76e36551d --- /dev/null +++ b/tests/baselines/reference/strictModeReservedWord.errors.txt @@ -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() { } + ~~~~~~~~~~ +!!! 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. + } + + \ No newline at end of file diff --git a/tests/baselines/reference/strictModeCode2.js b/tests/baselines/reference/strictModeReservedWord.js similarity index 89% rename from tests/baselines/reference/strictModeCode2.js rename to tests/baselines/reference/strictModeReservedWord.js index e3f7bc83369..9be21b20ae6 100644 --- a/tests/baselines/reference/strictModeCode2.js +++ b/tests/baselines/reference/strictModeReservedWord.js @@ -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(); } diff --git a/tests/baselines/reference/strictModeReservedWord2.errors.txt b/tests/baselines/reference/strictModeReservedWord2.errors.txt new file mode 100644 index 00000000000..8fbc79bbce0 --- /dev/null +++ b/tests/baselines/reference/strictModeReservedWord2.errors.txt @@ -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 + } + \ No newline at end of file diff --git a/tests/baselines/reference/strictModeReservedWord2.js b/tests/baselines/reference/strictModeReservedWord2.js new file mode 100644 index 00000000000..f6adc2389cd --- /dev/null +++ b/tests/baselines/reference/strictModeReservedWord2.js @@ -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 = {})); diff --git a/tests/baselines/reference/strictModeReservedWordInClassDeclaration.errors.txt b/tests/baselines/reference/strictModeReservedWordInClassDeclaration.errors.txt new file mode 100644 index 00000000000..b7876b1b849 --- /dev/null +++ b/tests/baselines/reference/strictModeReservedWordInClassDeclaration.errors.txt @@ -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{ } + ~~~~~~ +!!! 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'. \ No newline at end of file diff --git a/tests/baselines/reference/strictModeCode1.js b/tests/baselines/reference/strictModeReservedWordInClassDeclaration.js similarity index 91% rename from tests/baselines/reference/strictModeCode1.js rename to tests/baselines/reference/strictModeReservedWordInClassDeclaration.js index 1a7b93417c6..98b38532aa6 100644 --- a/tests/baselines/reference/strictModeCode1.js +++ b/tests/baselines/reference/strictModeReservedWordInClassDeclaration.js @@ -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; } diff --git a/tests/baselines/reference/strictModeReservedWordInDestructuring.errors.txt b/tests/baselines/reference/strictModeReservedWordInDestructuring.errors.txt new file mode 100644 index 00000000000..0776e6b255b --- /dev/null +++ b/tests/baselines/reference/strictModeReservedWordInDestructuring.errors.txt @@ -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 \ No newline at end of file diff --git a/tests/baselines/reference/strictModeCode5.js b/tests/baselines/reference/strictModeReservedWordInDestructuring.js similarity index 82% rename from tests/baselines/reference/strictModeCode5.js rename to tests/baselines/reference/strictModeReservedWordInDestructuring.js index 8a480b0fe70..1fe5a9f71d6 100644 --- a/tests/baselines/reference/strictModeCode5.js +++ b/tests/baselines/reference/strictModeReservedWordInDestructuring.js @@ -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; diff --git a/tests/baselines/reference/strictModeReservedWordInImportEqualDeclaration.errors.txt b/tests/baselines/reference/strictModeReservedWordInImportEqualDeclaration.errors.txt new file mode 100644 index 00000000000..408cf161f3c --- /dev/null +++ b/tests/baselines/reference/strictModeReservedWordInImportEqualDeclaration.errors.txt @@ -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'. \ No newline at end of file diff --git a/tests/baselines/reference/strictModeReservedWordInImportEqualDeclaration.js b/tests/baselines/reference/strictModeReservedWordInImportEqualDeclaration.js new file mode 100644 index 00000000000..50ed1b4d755 --- /dev/null +++ b/tests/baselines/reference/strictModeReservedWordInImportEqualDeclaration.js @@ -0,0 +1,7 @@ +//// [strictModeReservedWordInImportEqualDeclaration.ts] + +"use strict" +import public = require("1"); + +//// [strictModeReservedWordInImportEqualDeclaration.js] +"use strict"; diff --git a/tests/baselines/reference/strictModeReservedWordInModuleDeclaration.errors.txt b/tests/baselines/reference/strictModeReservedWordInModuleDeclaration.errors.txt new file mode 100644 index 00000000000..f745f93f79e --- /dev/null +++ b/tests/baselines/reference/strictModeReservedWordInModuleDeclaration.errors.txt @@ -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 \ No newline at end of file diff --git a/tests/baselines/reference/strictModeCode8.js b/tests/baselines/reference/strictModeReservedWordInModuleDeclaration.js similarity index 52% rename from tests/baselines/reference/strictModeCode8.js rename to tests/baselines/reference/strictModeReservedWordInModuleDeclaration.js index e2c541217f4..b7e7d0df341 100644 --- a/tests/baselines/reference/strictModeCode8.js +++ b/tests/baselines/reference/strictModeReservedWordInModuleDeclaration.js @@ -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"; diff --git a/tests/baselines/reference/strictModeWordInExportDeclaration.js b/tests/baselines/reference/strictModeWordInExportDeclaration.js new file mode 100644 index 00000000000..e884f49e1b8 --- /dev/null +++ b/tests/baselines/reference/strictModeWordInExportDeclaration.js @@ -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 }; diff --git a/tests/baselines/reference/strictModeWordInExportDeclaration.types b/tests/baselines/reference/strictModeWordInExportDeclaration.types new file mode 100644 index 00000000000..8a54d7275d2 --- /dev/null +++ b/tests/baselines/reference/strictModeWordInExportDeclaration.types @@ -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 + diff --git a/tests/baselines/reference/strictModeWordInImportDeclaration.errors.txt b/tests/baselines/reference/strictModeWordInImportDeclaration.errors.txt new file mode 100644 index 00000000000..83e44ab50b9 --- /dev/null +++ b/tests/baselines/reference/strictModeWordInImportDeclaration.errors.txt @@ -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'. \ No newline at end of file diff --git a/tests/baselines/reference/strictModeCode6.js b/tests/baselines/reference/strictModeWordInImportDeclaration.js similarity index 56% rename from tests/baselines/reference/strictModeCode6.js rename to tests/baselines/reference/strictModeWordInImportDeclaration.js index e8fd529d1aa..4a335d8a744 100644 --- a/tests/baselines/reference/strictModeCode6.js +++ b/tests/baselines/reference/strictModeWordInImportDeclaration.js @@ -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"; diff --git a/tests/cases/compiler/strictModeCode4.ts b/tests/cases/compiler/errorRecoveryInClassDeclaration.ts similarity index 100% rename from tests/cases/compiler/strictModeCode4.ts rename to tests/cases/compiler/errorRecoveryInClassDeclaration.ts diff --git a/tests/cases/compiler/reservedWords2.ts b/tests/cases/compiler/reservedWords2.ts new file mode 100644 index 00000000000..54482264d0e --- /dev/null +++ b/tests/cases/compiler/reservedWords2.ts @@ -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 {} + + diff --git a/tests/cases/compiler/strictModeCode3.ts b/tests/cases/compiler/strictModeCode3.ts deleted file mode 100644 index 800f882d34d..00000000000 --- a/tests/cases/compiler/strictModeCode3.ts +++ /dev/null @@ -1,6 +0,0 @@ -"use strict" -interface public { } -interface implements { - foo(package, protected); -} -enum package { } \ No newline at end of file diff --git a/tests/cases/compiler/strictModeCode2.ts b/tests/cases/compiler/strictModeReservedWord.ts similarity index 92% rename from tests/cases/compiler/strictModeCode2.ts rename to tests/cases/compiler/strictModeReservedWord.ts index 6336329ae71..e26e04f23e4 100644 --- a/tests/cases/compiler/strictModeCode2.ts +++ b/tests/cases/compiler/strictModeReservedWord.ts @@ -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(); } diff --git a/tests/cases/compiler/strictModeReservedWord2.ts b/tests/cases/compiler/strictModeReservedWord2.ts new file mode 100644 index 00000000000..07ca04b849b --- /dev/null +++ b/tests/cases/compiler/strictModeReservedWord2.ts @@ -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 +} diff --git a/tests/cases/compiler/strictModeCode1.ts b/tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts similarity index 100% rename from tests/cases/compiler/strictModeCode1.ts rename to tests/cases/compiler/strictModeReservedWordInClassDeclaration.ts diff --git a/tests/cases/compiler/strictModeCode5.ts b/tests/cases/compiler/strictModeReservedWordInDestructuring.ts similarity index 100% rename from tests/cases/compiler/strictModeCode5.ts rename to tests/cases/compiler/strictModeReservedWordInDestructuring.ts diff --git a/tests/cases/compiler/strictModeCode7.ts b/tests/cases/compiler/strictModeReservedWordInImportEqualDeclaration.ts similarity index 100% rename from tests/cases/compiler/strictModeCode7.ts rename to tests/cases/compiler/strictModeReservedWordInImportEqualDeclaration.ts diff --git a/tests/cases/compiler/strictModeCode8.ts b/tests/cases/compiler/strictModeReservedWordInModuleDeclaration.ts similarity index 100% rename from tests/cases/compiler/strictModeCode8.ts rename to tests/cases/compiler/strictModeReservedWordInModuleDeclaration.ts diff --git a/tests/cases/compiler/strictModeWordInExportDeclaration.ts b/tests/cases/compiler/strictModeWordInExportDeclaration.ts new file mode 100644 index 00000000000..fe6a0d6691a --- /dev/null +++ b/tests/cases/compiler/strictModeWordInExportDeclaration.ts @@ -0,0 +1,6 @@ +// @target: ES6 +"use strict" +var x = 1; +export { x as foo } +export { x as implements } +export { x as while } \ No newline at end of file diff --git a/tests/cases/compiler/strictModeCode6.ts b/tests/cases/compiler/strictModeWordInImportDeclaration.ts similarity index 100% rename from tests/cases/compiler/strictModeCode6.ts rename to tests/cases/compiler/strictModeWordInImportDeclaration.ts