mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-05 08:11:30 -06:00
Merge pull request #3726 from Microsoft/restParamModifier
Disallow modifiers on rest parameters
This commit is contained in:
commit
ba87e14bea
@ -1979,8 +1979,8 @@ namespace ts {
|
||||
function parseParameter(): ParameterDeclaration {
|
||||
let node = <ParameterDeclaration>createNode(SyntaxKind.Parameter);
|
||||
node.decorators = parseDecorators();
|
||||
node.dotDotDotToken = parseOptionalToken(SyntaxKind.DotDotDotToken);
|
||||
setModifiers(node, parseModifiers());
|
||||
node.dotDotDotToken = parseOptionalToken(SyntaxKind.DotDotDotToken);
|
||||
|
||||
// FormalParameter [Yield,Await]:
|
||||
// BindingElement[?Yield,?Await]
|
||||
|
||||
21
tests/baselines/reference/restParamModifier.errors.txt
Normal file
21
tests/baselines/reference/restParamModifier.errors.txt
Normal file
@ -0,0 +1,21 @@
|
||||
tests/cases/compiler/restParamModifier.ts(2,17): error TS2370: A rest parameter must be of an array type.
|
||||
tests/cases/compiler/restParamModifier.ts(2,27): error TS1005: '=' expected.
|
||||
tests/cases/compiler/restParamModifier.ts(2,27): error TS2304: Cannot find name 'rest'.
|
||||
tests/cases/compiler/restParamModifier.ts(2,31): error TS1005: ',' expected.
|
||||
tests/cases/compiler/restParamModifier.ts(2,39): error TS1005: '=' expected.
|
||||
|
||||
|
||||
==== tests/cases/compiler/restParamModifier.ts (5 errors) ====
|
||||
class C {
|
||||
constructor(...public rest: string[]) {}
|
||||
~~~~~~~~~~~~~~
|
||||
!!! error TS2370: A rest parameter must be of an array type.
|
||||
~~~~
|
||||
!!! error TS1005: '=' expected.
|
||||
~~~~
|
||||
!!! error TS2304: Cannot find name 'rest'.
|
||||
~
|
||||
!!! error TS1005: ',' expected.
|
||||
~
|
||||
!!! error TS1005: '=' expected.
|
||||
}
|
||||
12
tests/baselines/reference/restParamModifier.js
Normal file
12
tests/baselines/reference/restParamModifier.js
Normal file
@ -0,0 +1,12 @@
|
||||
//// [restParamModifier.ts]
|
||||
class C {
|
||||
constructor(...public rest: string[]) {}
|
||||
}
|
||||
|
||||
//// [restParamModifier.js]
|
||||
var C = (function () {
|
||||
function C(public, string) {
|
||||
if (string === void 0) { string = []; }
|
||||
}
|
||||
return C;
|
||||
})();
|
||||
9
tests/baselines/reference/restParamModifier2.errors.txt
Normal file
9
tests/baselines/reference/restParamModifier2.errors.txt
Normal file
@ -0,0 +1,9 @@
|
||||
tests/cases/compiler/restParamModifier2.ts(2,24): error TS1005: ',' expected.
|
||||
|
||||
|
||||
==== tests/cases/compiler/restParamModifier2.ts (1 errors) ====
|
||||
class C {
|
||||
constructor(public ...rest: string[]) {}
|
||||
~~~
|
||||
!!! error TS1005: ',' expected.
|
||||
}
|
||||
15
tests/baselines/reference/restParamModifier2.js
Normal file
15
tests/baselines/reference/restParamModifier2.js
Normal file
@ -0,0 +1,15 @@
|
||||
//// [restParamModifier2.ts]
|
||||
class C {
|
||||
constructor(public ...rest: string[]) {}
|
||||
}
|
||||
|
||||
//// [restParamModifier2.js]
|
||||
var C = (function () {
|
||||
function C(public) {
|
||||
var rest = [];
|
||||
for (var _i = 1; _i < arguments.length; _i++) {
|
||||
rest[_i - 1] = arguments[_i];
|
||||
}
|
||||
}
|
||||
return C;
|
||||
})();
|
||||
3
tests/cases/compiler/restParamModifier.ts
Normal file
3
tests/cases/compiler/restParamModifier.ts
Normal file
@ -0,0 +1,3 @@
|
||||
class C {
|
||||
constructor(...public rest: string[]) {}
|
||||
}
|
||||
3
tests/cases/compiler/restParamModifier2.ts
Normal file
3
tests/cases/compiler/restParamModifier2.ts
Normal file
@ -0,0 +1,3 @@
|
||||
class C {
|
||||
constructor(public ...rest: string[]) {}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user