From 392fe47478360585d4de262f329a3228ce3e00f2 Mon Sep 17 00:00:00 2001 From: Erik Edrosa Date: Mon, 20 Jun 2016 23:32:13 -0400 Subject: [PATCH 1/6] Add new error for rest parameters --- src/compiler/diagnosticMessages.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index d3ecb1715a9..f2705861047 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -851,6 +851,10 @@ "category": "Error", "code": 1316 }, + "A parameter property cannot be declared using a rest parameter.": { + "category": "Error", + "code": 1317 + }, "Duplicate identifier '{0}'.": { "category": "Error", "code": 2300 From 1a66f54e89b6d400f0962617225ffac83d3e8717 Mon Sep 17 00:00:00 2001 From: Erik Edrosa Date: Tue, 21 Jun 2016 01:33:47 -0400 Subject: [PATCH 2/6] Add error message for rest parameter properties --- src/compiler/checker.ts | 3 +++ src/compiler/parser.ts | 1 + 2 files changed, 4 insertions(+) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index ac8a47a9913..1e97e83c1fa 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -18206,6 +18206,9 @@ namespace ts { else if (node.kind === SyntaxKind.Parameter && (flags & NodeFlags.ParameterPropertyModifier) && isBindingPattern((node).name)) { return grammarErrorOnNode(node, Diagnostics.A_parameter_property_may_not_be_a_binding_pattern); } + else if (node.kind === SyntaxKind.Parameter && (flags & NodeFlags.ParameterPropertyModifier) && (node).dotDotDotToken) { + return grammarErrorOnNode(node, Diagnostics.A_parameter_property_cannot_be_declared_using_a_rest_parameter); + } if (flags & NodeFlags.Async) { return checkGrammarAsyncModifier(node, lastAsync); } diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index b2f3755ec46..38aa704fb21 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1178,6 +1178,7 @@ namespace ts { return token === SyntaxKind.OpenBracketToken || token === SyntaxKind.OpenBraceToken || token === SyntaxKind.AsteriskToken + || token === SyntaxKind.DotDotDotToken || isLiteralPropertyName(); } From 65bd8e5b6c6478dbb6fa01a370e22f86b091d739 Mon Sep 17 00:00:00 2001 From: Erik Edrosa Date: Tue, 21 Jun 2016 19:06:26 -0400 Subject: [PATCH 3/6] Accept rest parameter properties error baselines --- .../destructuringParameterDeclaration4.errors.txt | 14 ++++++++++---- .../destructuringParameterDeclaration4.js | 7 ++++--- tests/baselines/reference/parser509668.errors.txt | 6 +++--- tests/baselines/reference/parser509668.js | 7 ++++--- .../reference/restParamModifier2.errors.txt | 6 +++--- tests/baselines/reference/restParamModifier2.js | 7 ++++--- .../varArgConstructorMemberParameter.errors.txt | 6 +++--- .../reference/varArgConstructorMemberParameter.js | 7 ++++--- 8 files changed, 35 insertions(+), 25 deletions(-) diff --git a/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt b/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt index aa5a8e8daea..c22a99aee79 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt +++ b/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt @@ -1,5 +1,7 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts(11,13): error TS2370: A rest parameter must be of an array type. tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts(13,13): error TS2370: A rest parameter must be of an array type. +tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts(14,17): error TS1047: A rest parameter cannot be optional. +tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts(15,16): error TS1048: A rest parameter cannot have an initializer. tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts(20,19): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'number | string'. tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts(21,7): error TS2304: Cannot find name 'array2'. tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts(22,4): error TS2345: Argument of type '[number, number, string, boolean, boolean]' is not assignable to parameter of type '[any, any, [[any]]]'. @@ -10,12 +12,12 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts( tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts(24,4): error TS2345: Argument of type '(number | string)[]' is not assignable to parameter of type 'number[]'. Type 'number | string' is not assignable to type 'number'. Type 'string' is not assignable to type 'number'. -tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts(29,24): error TS1005: ',' expected. +tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts(29,17): error TS1317: A parameter property cannot be declared using a rest parameter. tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts(34,22): error TS2304: Cannot find name 'E1'. tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts(34,28): error TS2304: Cannot find name 'E'. -==== tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts (10 errors) ==== +==== tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts (12 errors) ==== // If the parameter is a rest parameter, the parameter type is any[] // A type annotation for a rest parameter must denote an array type. @@ -34,7 +36,11 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts( ~~~~~~~~~~~~~~~ !!! error TS2370: A rest parameter must be of an array type. function a3(...b?) { } // Error, can't be optional + ~ +!!! error TS1047: A rest parameter cannot be optional. function a4(...b = [1,2,3]) { } // Error, can't have initializer + ~ +!!! error TS1048: A rest parameter cannot have an initializer. function a5([a, b, [[c]]]) { } function a6([a, b, c, ...x]: number[]) { } @@ -64,8 +70,8 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts( var temp = [1, 2, 3]; class C { constructor(public ...temp) { } // Error, rest parameter can't have accessibilityModifier - ~~~ -!!! error TS1005: ',' expected. + ~~~~~~~~~~~~~~ +!!! error TS1317: A parameter property cannot be declared using a rest parameter. } // Rest parameter with generic diff --git a/tests/baselines/reference/destructuringParameterDeclaration4.js b/tests/baselines/reference/destructuringParameterDeclaration4.js index 2f0f24ac123..653a2e21856 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration4.js +++ b/tests/baselines/reference/destructuringParameterDeclaration4.js @@ -83,11 +83,12 @@ a5([1, 2]); // Error, parameter type is [any, any, [[any]]] a6([1, 2, "string"]); // Error, parameter type is number[] var temp = [1, 2, 3]; var C = (function () { - function C(public) { + function C() { var temp = []; - for (var _i = 1; _i < arguments.length; _i++) { - temp[_i - 1] = arguments[_i]; + for (var _i = 0; _i < arguments.length; _i++) { + temp[_i - 0] = arguments[_i]; } + this.temp = temp; } // Error, rest parameter can't have accessibilityModifier return C; }()); diff --git a/tests/baselines/reference/parser509668.errors.txt b/tests/baselines/reference/parser509668.errors.txt index 5ea380592ef..f83c53db449 100644 --- a/tests/baselines/reference/parser509668.errors.txt +++ b/tests/baselines/reference/parser509668.errors.txt @@ -1,10 +1,10 @@ -tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509668.ts(3,23): error TS1005: ',' expected. +tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509668.ts(3,16): error TS1317: A parameter property cannot be declared using a rest parameter. ==== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509668.ts (1 errors) ==== class Foo3 { // Doesn't work, but should constructor (public ...args: string[]) { } - ~~~ -!!! error TS1005: ',' expected. + ~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS1317: A parameter property cannot be declared using a rest parameter. } \ No newline at end of file diff --git a/tests/baselines/reference/parser509668.js b/tests/baselines/reference/parser509668.js index 97a51d8a5e7..c767aea676a 100644 --- a/tests/baselines/reference/parser509668.js +++ b/tests/baselines/reference/parser509668.js @@ -7,11 +7,12 @@ class Foo3 { //// [parser509668.js] var Foo3 = (function () { // Doesn't work, but should - function Foo3(public) { + function Foo3() { var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i - 0] = arguments[_i]; } + this.args = args; } return Foo3; }()); diff --git a/tests/baselines/reference/restParamModifier2.errors.txt b/tests/baselines/reference/restParamModifier2.errors.txt index 773592fa9bf..032f657c107 100644 --- a/tests/baselines/reference/restParamModifier2.errors.txt +++ b/tests/baselines/reference/restParamModifier2.errors.txt @@ -1,9 +1,9 @@ -tests/cases/compiler/restParamModifier2.ts(2,24): error TS1005: ',' expected. +tests/cases/compiler/restParamModifier2.ts(2,17): error TS1317: A parameter property cannot be declared using a rest parameter. ==== tests/cases/compiler/restParamModifier2.ts (1 errors) ==== class C { constructor(public ...rest: string[]) {} - ~~~ -!!! error TS1005: ',' expected. + ~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS1317: A parameter property cannot be declared using a rest parameter. } \ No newline at end of file diff --git a/tests/baselines/reference/restParamModifier2.js b/tests/baselines/reference/restParamModifier2.js index ac8376319b3..a11b78a2376 100644 --- a/tests/baselines/reference/restParamModifier2.js +++ b/tests/baselines/reference/restParamModifier2.js @@ -5,11 +5,12 @@ class C { //// [restParamModifier2.js] var C = (function () { - function C(public) { + function C() { var rest = []; - for (var _i = 1; _i < arguments.length; _i++) { - rest[_i - 1] = arguments[_i]; + for (var _i = 0; _i < arguments.length; _i++) { + rest[_i - 0] = arguments[_i]; } + this.rest = rest; } return C; }()); diff --git a/tests/baselines/reference/varArgConstructorMemberParameter.errors.txt b/tests/baselines/reference/varArgConstructorMemberParameter.errors.txt index e3257b870d6..9fb55a4d5fc 100644 --- a/tests/baselines/reference/varArgConstructorMemberParameter.errors.txt +++ b/tests/baselines/reference/varArgConstructorMemberParameter.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/varArgConstructorMemberParameter.ts(10,25): error TS1005: ',' expected. +tests/cases/compiler/varArgConstructorMemberParameter.ts(10,18): error TS1317: A parameter property cannot be declared using a rest parameter. ==== tests/cases/compiler/varArgConstructorMemberParameter.ts (1 errors) ==== @@ -12,7 +12,7 @@ tests/cases/compiler/varArgConstructorMemberParameter.ts(10,25): error TS1005: ' class Foo3 { constructor (public ...args: string[]) { } - ~~~ -!!! error TS1005: ',' expected. + ~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS1317: A parameter property cannot be declared using a rest parameter. } \ No newline at end of file diff --git a/tests/baselines/reference/varArgConstructorMemberParameter.js b/tests/baselines/reference/varArgConstructorMemberParameter.js index 620642a7514..2715ed9e542 100644 --- a/tests/baselines/reference/varArgConstructorMemberParameter.js +++ b/tests/baselines/reference/varArgConstructorMemberParameter.js @@ -29,11 +29,12 @@ var Foo2 = (function () { return Foo2; }()); var Foo3 = (function () { - function Foo3(public) { + function Foo3() { var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i - 0] = arguments[_i]; } + this.args = args; } return Foo3; }()); From 20f8c33e521cd2f917df3bde311e18d9bb5b3352 Mon Sep 17 00:00:00 2001 From: Erik Edrosa Date: Tue, 21 Jun 2016 14:21:13 -0400 Subject: [PATCH 4/6] Change binding pattern parameter property error --- src/compiler/checker.ts | 2 +- src/compiler/diagnosticMessages.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 1e97e83c1fa..30a23bcd006 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -18204,7 +18204,7 @@ namespace ts { return grammarErrorOnNode(lastDeclare, Diagnostics.A_0_modifier_cannot_be_used_with_an_import_declaration, "declare"); } else if (node.kind === SyntaxKind.Parameter && (flags & NodeFlags.ParameterPropertyModifier) && isBindingPattern((node).name)) { - return grammarErrorOnNode(node, Diagnostics.A_parameter_property_may_not_be_a_binding_pattern); + return grammarErrorOnNode(node, Diagnostics.A_parameter_property_may_not_be_declared_using_a_binding_pattern); } else if (node.kind === SyntaxKind.Parameter && (flags & NodeFlags.ParameterPropertyModifier) && (node).dotDotDotToken) { return grammarErrorOnNode(node, Diagnostics.A_parameter_property_cannot_be_declared_using_a_rest_parameter); diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index f2705861047..95475a6178e 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -571,7 +571,7 @@ "category": "Error", "code": 1186 }, - "A parameter property may not be a binding pattern.": { + "A parameter property may not be declared using a binding pattern.": { "category": "Error", "code": 1187 }, From 6a4400a9886f2919c9eae62e1396e28b5889e093 Mon Sep 17 00:00:00 2001 From: Erik Edrosa Date: Tue, 21 Jun 2016 14:24:41 -0400 Subject: [PATCH 5/6] Accept binding pattern properties error baselines --- ...onEmitDestructuringParameterProperties.errors.txt | 12 ++++++------ .../destructuringParameterProperties1.errors.txt | 12 ++++++------ .../destructuringParameterProperties2.errors.txt | 4 ++-- .../destructuringParameterProperties3.errors.txt | 4 ++-- .../destructuringParameterProperties4.errors.txt | 4 ++-- .../destructuringParameterProperties5.errors.txt | 4 ++-- 6 files changed, 20 insertions(+), 20 deletions(-) diff --git a/tests/baselines/reference/declarationEmitDestructuringParameterProperties.errors.txt b/tests/baselines/reference/declarationEmitDestructuringParameterProperties.errors.txt index 83785e86f65..aab9d18d629 100644 --- a/tests/baselines/reference/declarationEmitDestructuringParameterProperties.errors.txt +++ b/tests/baselines/reference/declarationEmitDestructuringParameterProperties.errors.txt @@ -1,13 +1,13 @@ -tests/cases/compiler/declarationEmitDestructuringParameterProperties.ts(2,17): error TS1187: A parameter property may not be a binding pattern. -tests/cases/compiler/declarationEmitDestructuringParameterProperties.ts(8,17): error TS1187: A parameter property may not be a binding pattern. -tests/cases/compiler/declarationEmitDestructuringParameterProperties.ts(14,17): error TS1187: A parameter property may not be a binding pattern. +tests/cases/compiler/declarationEmitDestructuringParameterProperties.ts(2,17): error TS1187: A parameter property may not be declared using a binding pattern. +tests/cases/compiler/declarationEmitDestructuringParameterProperties.ts(8,17): error TS1187: A parameter property may not be declared using a binding pattern. +tests/cases/compiler/declarationEmitDestructuringParameterProperties.ts(14,17): error TS1187: A parameter property may not be declared using a binding pattern. ==== tests/cases/compiler/declarationEmitDestructuringParameterProperties.ts (3 errors) ==== class C1 { constructor(public [x, y, z]: string[]) { ~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS1187: A parameter property may not be a binding pattern. +!!! error TS1187: A parameter property may not be declared using a binding pattern. } } @@ -15,7 +15,7 @@ tests/cases/compiler/declarationEmitDestructuringParameterProperties.ts(14,17): class C2 { constructor(public [x, y, z]: TupleType1) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS1187: A parameter property may not be a binding pattern. +!!! error TS1187: A parameter property may not be declared using a binding pattern. } } @@ -23,6 +23,6 @@ tests/cases/compiler/declarationEmitDestructuringParameterProperties.ts(14,17): class C3 { constructor(public { x, y, z }: ObjType1) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS1187: A parameter property may not be a binding pattern. +!!! error TS1187: A parameter property may not be declared using a binding pattern. } } \ No newline at end of file diff --git a/tests/baselines/reference/destructuringParameterProperties1.errors.txt b/tests/baselines/reference/destructuringParameterProperties1.errors.txt index b8f3a22b4c5..09d44a64a62 100644 --- a/tests/baselines/reference/destructuringParameterProperties1.errors.txt +++ b/tests/baselines/reference/destructuringParameterProperties1.errors.txt @@ -1,6 +1,6 @@ -tests/cases/conformance/es6/destructuring/destructuringParameterProperties1.ts(2,17): error TS1187: A parameter property may not be a binding pattern. -tests/cases/conformance/es6/destructuring/destructuringParameterProperties1.ts(9,17): error TS1187: A parameter property may not be a binding pattern. -tests/cases/conformance/es6/destructuring/destructuringParameterProperties1.ts(16,17): error TS1187: A parameter property may not be a binding pattern. +tests/cases/conformance/es6/destructuring/destructuringParameterProperties1.ts(2,17): error TS1187: A parameter property may not be declared using a binding pattern. +tests/cases/conformance/es6/destructuring/destructuringParameterProperties1.ts(9,17): error TS1187: A parameter property may not be declared using a binding pattern. +tests/cases/conformance/es6/destructuring/destructuringParameterProperties1.ts(16,17): error TS1187: A parameter property may not be declared using a binding pattern. tests/cases/conformance/es6/destructuring/destructuringParameterProperties1.ts(22,26): error TS2339: Property 'x' does not exist on type 'C1'. tests/cases/conformance/es6/destructuring/destructuringParameterProperties1.ts(22,35): error TS2339: Property 'y' does not exist on type 'C1'. tests/cases/conformance/es6/destructuring/destructuringParameterProperties1.ts(22,43): error TS2339: Property 'y' does not exist on type 'C1'. @@ -17,7 +17,7 @@ tests/cases/conformance/es6/destructuring/destructuringParameterProperties1.ts(2 class C1 { constructor(public [x, y, z]: string[]) { ~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS1187: A parameter property may not be a binding pattern. +!!! error TS1187: A parameter property may not be declared using a binding pattern. } } @@ -26,7 +26,7 @@ tests/cases/conformance/es6/destructuring/destructuringParameterProperties1.ts(2 class C2 { constructor(public [x, y, z]: TupleType1) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS1187: A parameter property may not be a binding pattern. +!!! error TS1187: A parameter property may not be declared using a binding pattern. } } @@ -35,7 +35,7 @@ tests/cases/conformance/es6/destructuring/destructuringParameterProperties1.ts(2 class C3 { constructor(public { x, y, z }: ObjType1) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS1187: A parameter property may not be a binding pattern. +!!! error TS1187: A parameter property may not be declared using a binding pattern. } } diff --git a/tests/baselines/reference/destructuringParameterProperties2.errors.txt b/tests/baselines/reference/destructuringParameterProperties2.errors.txt index bc7588a853d..ec0f400631f 100644 --- a/tests/baselines/reference/destructuringParameterProperties2.errors.txt +++ b/tests/baselines/reference/destructuringParameterProperties2.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/es6/destructuring/destructuringParameterProperties2.ts(2,36): error TS1187: A parameter property may not be a binding pattern. +tests/cases/conformance/es6/destructuring/destructuringParameterProperties2.ts(2,36): error TS1187: A parameter property may not be declared using a binding pattern. tests/cases/conformance/es6/destructuring/destructuringParameterProperties2.ts(3,59): error TS2339: Property 'b' does not exist on type 'C1'. tests/cases/conformance/es6/destructuring/destructuringParameterProperties2.ts(3,83): error TS2339: Property 'c' does not exist on type 'C1'. tests/cases/conformance/es6/destructuring/destructuringParameterProperties2.ts(4,18): error TS2339: Property 'a' does not exist on type 'C1'. @@ -14,7 +14,7 @@ tests/cases/conformance/es6/destructuring/destructuringParameterProperties2.ts(2 class C1 { constructor(private k: number, private [a, b, c]: [number, string, boolean]) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS1187: A parameter property may not be a binding pattern. +!!! error TS1187: A parameter property may not be declared using a binding pattern. if ((b === undefined && c === undefined) || (this.b === undefined && this.c === undefined)) { ~ !!! error TS2339: Property 'b' does not exist on type 'C1'. diff --git a/tests/baselines/reference/destructuringParameterProperties3.errors.txt b/tests/baselines/reference/destructuringParameterProperties3.errors.txt index 73d7dab2a38..cbd2d089c71 100644 --- a/tests/baselines/reference/destructuringParameterProperties3.errors.txt +++ b/tests/baselines/reference/destructuringParameterProperties3.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(2,31): error TS1187: A parameter property may not be a binding pattern. +tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(2,31): error TS1187: A parameter property may not be declared using a binding pattern. tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(3,59): error TS2339: Property 'b' does not exist on type 'C1'. tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(3,83): error TS2339: Property 'c' does not exist on type 'C1'. tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(4,18): error TS2339: Property 'a' does not exist on type 'C1'. @@ -11,7 +11,7 @@ tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(1 class C1 { constructor(private k: T, private [a, b, c]: [T,U,V]) { ~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS1187: A parameter property may not be a binding pattern. +!!! error TS1187: A parameter property may not be declared using a binding pattern. if ((b === undefined && c === undefined) || (this.b === undefined && this.c === undefined)) { ~ !!! error TS2339: Property 'b' does not exist on type 'C1'. diff --git a/tests/baselines/reference/destructuringParameterProperties4.errors.txt b/tests/baselines/reference/destructuringParameterProperties4.errors.txt index 04f6f82b5df..249cecbc74f 100644 --- a/tests/baselines/reference/destructuringParameterProperties4.errors.txt +++ b/tests/baselines/reference/destructuringParameterProperties4.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/es6/destructuring/destructuringParameterProperties4.ts(3,31): error TS1187: A parameter property may not be a binding pattern. +tests/cases/conformance/es6/destructuring/destructuringParameterProperties4.ts(3,31): error TS1187: A parameter property may not be declared using a binding pattern. tests/cases/conformance/es6/destructuring/destructuringParameterProperties4.ts(4,59): error TS2339: Property 'b' does not exist on type 'C1'. tests/cases/conformance/es6/destructuring/destructuringParameterProperties4.ts(4,83): error TS2339: Property 'c' does not exist on type 'C1'. tests/cases/conformance/es6/destructuring/destructuringParameterProperties4.ts(5,18): error TS2339: Property 'a' does not exist on type 'C1'. @@ -15,7 +15,7 @@ tests/cases/conformance/es6/destructuring/destructuringParameterProperties4.ts(2 class C1 { constructor(private k: T, protected [a, b, c]: [T,U,V]) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS1187: A parameter property may not be a binding pattern. +!!! error TS1187: A parameter property may not be declared using a binding pattern. if ((b === undefined && c === undefined) || (this.b === undefined && this.c === undefined)) { ~ !!! error TS2339: Property 'b' does not exist on type 'C1'. diff --git a/tests/baselines/reference/destructuringParameterProperties5.errors.txt b/tests/baselines/reference/destructuringParameterProperties5.errors.txt index cfb38fde90b..6f5801b7898 100644 --- a/tests/baselines/reference/destructuringParameterProperties5.errors.txt +++ b/tests/baselines/reference/destructuringParameterProperties5.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/es6/destructuring/destructuringParameterProperties5.ts(5,17): error TS1187: A parameter property may not be a binding pattern. +tests/cases/conformance/es6/destructuring/destructuringParameterProperties5.ts(5,17): error TS1187: A parameter property may not be declared using a binding pattern. tests/cases/conformance/es6/destructuring/destructuringParameterProperties5.ts(5,27): error TS2459: Type '{ x: number; y: string; z: boolean; }' has no property 'x1' and no string index signature. tests/cases/conformance/es6/destructuring/destructuringParameterProperties5.ts(5,31): error TS2459: Type '{ x: number; y: string; z: boolean; }' has no property 'x2' and no string index signature. tests/cases/conformance/es6/destructuring/destructuringParameterProperties5.ts(5,35): error TS2459: Type '{ x: number; y: string; z: boolean; }' has no property 'x3' and no string index signature. @@ -20,7 +20,7 @@ tests/cases/conformance/es6/destructuring/destructuringParameterProperties5.ts(1 class C1 { constructor(public [{ x1, x2, x3 }, y, z]: TupleType1) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS1187: A parameter property may not be a binding pattern. +!!! error TS1187: A parameter property may not be declared using a binding pattern. ~~ !!! error TS2459: Type '{ x: number; y: string; z: boolean; }' has no property 'x1' and no string index signature. ~~ From be662e1f6ebbbcaab48c1af0a154f53f3e1649e2 Mon Sep 17 00:00:00 2001 From: Erik Edrosa Date: Wed, 22 Jun 2016 13:20:58 -0400 Subject: [PATCH 6/6] Change test comment and accept baseline --- .../reference/destructuringParameterDeclaration4.errors.txt | 2 +- .../baselines/reference/destructuringParameterDeclaration4.js | 4 ++-- .../es6/destructuring/destructuringParameterDeclaration4.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt b/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt index c22a99aee79..89c771139ce 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt +++ b/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt @@ -69,7 +69,7 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts( var temp = [1, 2, 3]; class C { - constructor(public ...temp) { } // Error, rest parameter can't have accessibilityModifier + constructor(public ...temp) { } // Error, rest parameter can't have properties ~~~~~~~~~~~~~~ !!! error TS1317: A parameter property cannot be declared using a rest parameter. } diff --git a/tests/baselines/reference/destructuringParameterDeclaration4.js b/tests/baselines/reference/destructuringParameterDeclaration4.js index 653a2e21856..44838d600d8 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration4.js +++ b/tests/baselines/reference/destructuringParameterDeclaration4.js @@ -27,7 +27,7 @@ a6([1, 2, "string"]); // Error, parameter type is number[] var temp = [1, 2, 3]; class C { - constructor(public ...temp) { } // Error, rest parameter can't have accessibilityModifier + constructor(public ...temp) { } // Error, rest parameter can't have properties } // Rest parameter with generic @@ -89,7 +89,7 @@ var C = (function () { temp[_i - 0] = arguments[_i]; } this.temp = temp; - } // Error, rest parameter can't have accessibilityModifier + } // Error, rest parameter can't have properties return C; }()); // Rest parameter with generic diff --git a/tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts b/tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts index 02fc84b380a..6a153034b32 100644 --- a/tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts +++ b/tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts @@ -26,7 +26,7 @@ a6([1, 2, "string"]); // Error, parameter type is number[] var temp = [1, 2, 3]; class C { - constructor(public ...temp) { } // Error, rest parameter can't have accessibilityModifier + constructor(public ...temp) { } // Error, rest parameter can't have properties } // Rest parameter with generic