diff --git a/tests/baselines/reference/parserComputedPropertyName36.errors.txt b/tests/baselines/reference/parserComputedPropertyName36.errors.txt index a6fa988ec32..6bcb5b52789 100644 --- a/tests/baselines/reference/parserComputedPropertyName36.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName36.errors.txt @@ -1,5 +1,5 @@ tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName36.ts(2,5): error TS1166: A computed property name in a class property declaration must directly refer to a built-in symbol. -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName36.ts(2,6): error TS1212: Identifier expected. 'public' is a reserved word in strict mode +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName36.ts(2,6): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode. tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName36.ts(2,6): error TS2304: Cannot find name 'public'. @@ -9,7 +9,7 @@ tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedP ~~~~~~~~~ !!! error TS1166: A computed property name in a class property declaration must directly refer to a built-in symbol. ~~~~~~ -!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode +!!! 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'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName38.errors.txt b/tests/baselines/reference/parserComputedPropertyName38.errors.txt index 807b91cd3e5..80589f1fde3 100644 --- a/tests/baselines/reference/parserComputedPropertyName38.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName38.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName38.ts(2,6): error TS1212: Identifier expected. 'public' is a reserved word in strict mode +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName38.ts(2,6): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode. tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName38.ts(2,6): error TS2304: Cannot find name 'public'. @@ -6,7 +6,7 @@ tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedP class C { [public]() { } ~~~~~~ -!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode +!!! 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'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName39.errors.txt b/tests/baselines/reference/parserComputedPropertyName39.errors.txt index 766ae402491..0213127f6d9 100644 --- a/tests/baselines/reference/parserComputedPropertyName39.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName39.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName39.ts(3,6): error TS1212: Identifier expected. 'public' is a reserved word in strict mode +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName39.ts(3,6): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode. tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName39.ts(3,6): error TS2304: Cannot find name 'public'. @@ -7,7 +7,7 @@ tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedP class C { [public]() { } ~~~~~~ -!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode +!!! 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'. } \ No newline at end of file diff --git a/tests/baselines/reference/strictModeCode1.errors.txt b/tests/baselines/reference/strictModeCode1.errors.txt index 7c80a4a71d5..f33163a7f03 100644 --- a/tests/baselines/reference/strictModeCode1.errors.txt +++ b/tests/baselines/reference/strictModeCode1.errors.txt @@ -1,9 +1,9 @@ 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 TS1212: Identifier expected. 'private' is a reserved word in strict mode -tests/cases/compiler/strictModeCode1.ts(5,19): error TS1212: Identifier expected. 'public' is a reserved word in strict mode -tests/cases/compiler/strictModeCode1.ts(5,28): error TS1212: Identifier expected. 'static' is a reserved word 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. @@ -13,10 +13,17 @@ tests/cases/compiler/strictModeCode1.ts(13,27): error TS1213: Identifier expecte 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 TS1212: Identifier expected. 'public' is a reserved word 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(25,27): error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode. +tests/cases/compiler/strictModeCode1.ts(26,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(26,17): error TS2304: Cannot find name 'package'. +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 (16 errors) ==== +==== tests/cases/compiler/strictModeCode1.ts (23 errors) ==== interface public { } class Foo { @@ -29,11 +36,11 @@ tests/cases/compiler/strictModeCode1.ts(23,20): error TS1212: Identifier expecte !!! error TS1213: Identifier expected. 'static' is a reserved word in strict mode. Class definitions are automatically in strict mode. private = public = static; ~~~~~~~ -!!! error TS1212: Identifier expected. 'private' is a reserved word in strict mode +!!! error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode. ~~~~~~ -!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode +!!! error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode. ~~~~~~ -!!! error TS1212: Identifier expected. 'static' is a reserved word 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) { } ~~~~~~ @@ -71,4 +78,22 @@ tests/cases/compiler/strictModeCode1.ts(23,20): error TS1212: Identifier expecte class E implements public { } ~~~~~~ -!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode \ No newline at end of file +!!! 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'. + ~~~~~~~ +!!! error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode. + 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/strictModeCode1.js index 32d3eb93242..88ff24d1b36 100644 --- a/tests/baselines/reference/strictModeCode1.js +++ b/tests/baselines/reference/strictModeCode1.js @@ -21,9 +21,19 @@ class C { class D{ } -class E implements public { } +class E implements public { } + +class F implements public.private.B { } +class G extends package { } +class H extends package.A { } //// [strictModeCode1.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; } + __.prototype = b.prototype; + d.prototype = new __(); +}; var Foo = (function () { function Foo(private, public, static) { private = public = static; @@ -52,3 +62,22 @@ var E = (function () { } return E; })(); +var F = (function () { + function F() { + } + return F; +})(); +var G = (function (_super) { + __extends(G, _super); + function G() { + _super.apply(this, arguments); + } + return G; +})(package); +var H = (function (_super) { + __extends(H, _super); + function H() { + _super.apply(this, arguments); + } + return H; +})(package.A); diff --git a/tests/baselines/reference/strictModeCode2.errors.txt b/tests/baselines/reference/strictModeCode2.errors.txt index 072e35d19e4..3016f02af7a 100644 --- a/tests/baselines/reference/strictModeCode2.errors.txt +++ b/tests/baselines/reference/strictModeCode2.errors.txt @@ -17,9 +17,26 @@ tests/cases/compiler/strictModeCode2.ts(13,11): error TS1212: Identifier expecte 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 (19 errors) ==== +==== tests/cases/compiler/strictModeCode2.ts (36 errors) ==== let let = 10; function foo() { @@ -73,6 +90,47 @@ tests/cases/compiler/strictModeCode2.ts(15,25): error TS9003: 'class' expression 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/strictModeCode2.js b/tests/baselines/reference/strictModeCode2.js index a49ca5946de..e3f7bc83369 100644 --- a/tests/baselines/reference/strictModeCode2.js +++ b/tests/baselines/reference/strictModeCode2.js @@ -14,6 +14,13 @@ function foo() { barn((private, public, package) => { }); var myClass = class package extends public {} + + var b: public.bar; + + function foo(x: private.x) { } + function foo1(x: private.package.x) { } + function foo2(x: private.package.protected) { } + let b: interface.package.implements.B; } @@ -38,4 +45,9 @@ function foo() { } return package; })(public); + var b; + function foo(x) { } + function foo1(x) { } + function foo2(x) { } + var b; } diff --git a/tests/cases/compiler/strictModeCode1.ts b/tests/cases/compiler/strictModeCode1.ts index e67a27dca77..0a7426d35c5 100644 --- a/tests/cases/compiler/strictModeCode1.ts +++ b/tests/cases/compiler/strictModeCode1.ts @@ -20,4 +20,8 @@ class C { class D{ } -class E implements public { } \ No newline at end of file +class E implements public { } + +class F implements public.private.B { } +class G extends package { } +class H extends package.A { } \ No newline at end of file diff --git a/tests/cases/compiler/strictModeCode2.ts b/tests/cases/compiler/strictModeCode2.ts index f0ba008d86d..6336329ae71 100644 --- a/tests/cases/compiler/strictModeCode2.ts +++ b/tests/cases/compiler/strictModeCode2.ts @@ -13,5 +13,12 @@ function foo() { barn((private, public, package) => { }); var myClass = class package extends public {} + + var b: public.bar; + + function foo(x: private.x) { } + function foo1(x: private.package.x) { } + function foo2(x: private.package.protected) { } + let b: interface.package.implements.B; }