Skip to content

Commit bae111f

Browse files
a-tarasyuksandersn
andauthored
fix(39245): change related diagnostic for missing rest parameter arguments (#39356)
Co-authored-by: Nathan Shively-Sanders <[email protected]>
1 parent 9b2d487 commit bae111f

6 files changed

+10
-5
lines changed

src/compiler/checker.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -26377,7 +26377,8 @@ namespace ts {
2637726377
if (paramDecl) {
2637826378
related = createDiagnosticForNode(
2637926379
paramDecl,
26380-
isBindingPattern(paramDecl.name) ? Diagnostics.An_argument_matching_this_binding_pattern_was_not_provided : Diagnostics.An_argument_for_0_was_not_provided,
26380+
isBindingPattern(paramDecl.name) ? Diagnostics.An_argument_matching_this_binding_pattern_was_not_provided :
26381+
isRestParameter(paramDecl) ? Diagnostics.Arguments_for_the_rest_parameter_0_were_not_provided : Diagnostics.An_argument_for_0_was_not_provided,
2638126382
!paramDecl.name ? argCount : !isBindingPattern(paramDecl.name) ? idText(getFirstIdentifier(paramDecl.name)) : undefined
2638226383
);
2638326384
}

src/compiler/diagnosticMessages.json

+4
Original file line numberDiff line numberDiff line change
@@ -4473,6 +4473,10 @@
44734473
"category": "Message",
44744474
"code": 6235
44754475
},
4476+
"Arguments for the rest parameter '{0}' were not provided.": {
4477+
"category": "Error",
4478+
"code": 6236
4479+
},
44764480

44774481
"Projects to reference": {
44784482
"category": "Message",

tests/baselines/reference/callWithMissingVoid.errors.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ tests/cases/conformance/expressions/functionCalls/callWithMissingVoid.ts(75,1):
119119
call((x: number, y: number) => x + y) // error
120120
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
121121
!!! error TS2554: Expected 3 arguments, but got 1.
122-
!!! related TS6210 tests/cases/conformance/expressions/functionCalls/callWithMissingVoid.ts:73:5: An argument for 'args' was not provided.
122+
!!! related TS6236 tests/cases/conformance/expressions/functionCalls/callWithMissingVoid.ts:73:5: Arguments for the rest parameter 'args' were not provided.
123123
call((x: number, y: number) => x + y, 4, 2) // ok
124124

125125
call((x: number, y: void) => x, 4, void 0) // ok

tests/baselines/reference/genericRestArity.errors.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ tests/cases/conformance/types/rest/genericRestArity.ts(8,45): error TS2554: Expe
1212
call((x: number, y: number) => x + y);
1313
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1414
!!! error TS2554: Expected 3 arguments, but got 1.
15-
!!! related TS6210 tests/cases/conformance/types/rest/genericRestArity.ts:5:5: An argument for 'args' was not provided.
15+
!!! related TS6236 tests/cases/conformance/types/rest/genericRestArity.ts:5:5: Arguments for the rest parameter 'args' were not provided.
1616
call((x: number, y: number) => x + y, 1, 2, 3, 4, 5, 6, 7);
1717
~~~~~~~~~~~~~
1818
!!! error TS2554: Expected 3 arguments, but got 8.

tests/baselines/reference/genericRestArityStrict.errors.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ tests/cases/conformance/types/rest/genericRestArityStrict.ts(8,45): error TS2554
1212
call((x: number, y: number) => x + y);
1313
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1414
!!! error TS2554: Expected 3 arguments, but got 1.
15-
!!! related TS6210 tests/cases/conformance/types/rest/genericRestArityStrict.ts:5:5: An argument for 'args' was not provided.
15+
!!! related TS6236 tests/cases/conformance/types/rest/genericRestArityStrict.ts:5:5: Arguments for the rest parameter 'args' were not provided.
1616
call((x: number, y: number) => x + y, 1, 2, 3, 4, 5, 6, 7);
1717
~~~~~~~~~~~~~
1818
!!! error TS2554: Expected 3 arguments, but got 8.

tests/baselines/reference/spreadOfParamsFromGeneratorMakesRequiredParams.errors.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ tests/cases/compiler/spreadOfParamsFromGeneratorMakesRequiredParams.ts(6,1): err
1212
call(function* (a: 'a') { }); // error, 2nd argument required
1313
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1414
!!! error TS2554: Expected 2 arguments, but got 1.
15-
!!! related TS6210 tests/cases/compiler/spreadOfParamsFromGeneratorMakesRequiredParams.ts:3:5: An argument for 'args' was not provided.
15+
!!! related TS6236 tests/cases/compiler/spreadOfParamsFromGeneratorMakesRequiredParams.ts:3:5: Arguments for the rest parameter 'args' were not provided.

0 commit comments

Comments
 (0)