From bae111f0aee5302c2ba81f984ffc2123d66de0ac Mon Sep 17 00:00:00 2001 From: Alexander T Date: Thu, 30 Jul 2020 03:25:13 +0300 Subject: [PATCH] fix(39245): change related diagnostic for missing rest parameter arguments (#39356) Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com> --- src/compiler/checker.ts | 3 ++- src/compiler/diagnosticMessages.json | 4 ++++ tests/baselines/reference/callWithMissingVoid.errors.txt | 2 +- tests/baselines/reference/genericRestArity.errors.txt | 2 +- tests/baselines/reference/genericRestArityStrict.errors.txt | 2 +- .../spreadOfParamsFromGeneratorMakesRequiredParams.errors.txt | 2 +- 6 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 6895118106e..f05e5b1433f 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -26377,7 +26377,8 @@ namespace ts { if (paramDecl) { related = createDiagnosticForNode( paramDecl, - isBindingPattern(paramDecl.name) ? Diagnostics.An_argument_matching_this_binding_pattern_was_not_provided : Diagnostics.An_argument_for_0_was_not_provided, + isBindingPattern(paramDecl.name) ? Diagnostics.An_argument_matching_this_binding_pattern_was_not_provided : + isRestParameter(paramDecl) ? Diagnostics.Arguments_for_the_rest_parameter_0_were_not_provided : Diagnostics.An_argument_for_0_was_not_provided, !paramDecl.name ? argCount : !isBindingPattern(paramDecl.name) ? idText(getFirstIdentifier(paramDecl.name)) : undefined ); } diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index d0d66f0f959..ea3dc6023ec 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -4473,6 +4473,10 @@ "category": "Message", "code": 6235 }, + "Arguments for the rest parameter '{0}' were not provided.": { + "category": "Error", + "code": 6236 + }, "Projects to reference": { "category": "Message", diff --git a/tests/baselines/reference/callWithMissingVoid.errors.txt b/tests/baselines/reference/callWithMissingVoid.errors.txt index 45a66c7a81e..c9537314d6c 100644 --- a/tests/baselines/reference/callWithMissingVoid.errors.txt +++ b/tests/baselines/reference/callWithMissingVoid.errors.txt @@ -119,7 +119,7 @@ tests/cases/conformance/expressions/functionCalls/callWithMissingVoid.ts(75,1): call((x: number, y: number) => x + y) // error ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2554: Expected 3 arguments, but got 1. -!!! related TS6210 tests/cases/conformance/expressions/functionCalls/callWithMissingVoid.ts:73:5: An argument for 'args' was not provided. +!!! related TS6236 tests/cases/conformance/expressions/functionCalls/callWithMissingVoid.ts:73:5: Arguments for the rest parameter 'args' were not provided. call((x: number, y: number) => x + y, 4, 2) // ok call((x: number, y: void) => x, 4, void 0) // ok diff --git a/tests/baselines/reference/genericRestArity.errors.txt b/tests/baselines/reference/genericRestArity.errors.txt index e9c98c35584..dc6696c6807 100644 --- a/tests/baselines/reference/genericRestArity.errors.txt +++ b/tests/baselines/reference/genericRestArity.errors.txt @@ -12,7 +12,7 @@ tests/cases/conformance/types/rest/genericRestArity.ts(8,45): error TS2554: Expe call((x: number, y: number) => x + y); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2554: Expected 3 arguments, but got 1. -!!! related TS6210 tests/cases/conformance/types/rest/genericRestArity.ts:5:5: An argument for 'args' was not provided. +!!! related TS6236 tests/cases/conformance/types/rest/genericRestArity.ts:5:5: Arguments for the rest parameter 'args' were not provided. call((x: number, y: number) => x + y, 1, 2, 3, 4, 5, 6, 7); ~~~~~~~~~~~~~ !!! error TS2554: Expected 3 arguments, but got 8. diff --git a/tests/baselines/reference/genericRestArityStrict.errors.txt b/tests/baselines/reference/genericRestArityStrict.errors.txt index c5fc4e9704f..cfaed4d6bd0 100644 --- a/tests/baselines/reference/genericRestArityStrict.errors.txt +++ b/tests/baselines/reference/genericRestArityStrict.errors.txt @@ -12,7 +12,7 @@ tests/cases/conformance/types/rest/genericRestArityStrict.ts(8,45): error TS2554 call((x: number, y: number) => x + y); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2554: Expected 3 arguments, but got 1. -!!! related TS6210 tests/cases/conformance/types/rest/genericRestArityStrict.ts:5:5: An argument for 'args' was not provided. +!!! related TS6236 tests/cases/conformance/types/rest/genericRestArityStrict.ts:5:5: Arguments for the rest parameter 'args' were not provided. call((x: number, y: number) => x + y, 1, 2, 3, 4, 5, 6, 7); ~~~~~~~~~~~~~ !!! error TS2554: Expected 3 arguments, but got 8. diff --git a/tests/baselines/reference/spreadOfParamsFromGeneratorMakesRequiredParams.errors.txt b/tests/baselines/reference/spreadOfParamsFromGeneratorMakesRequiredParams.errors.txt index 393e21edb6c..b2919535b02 100644 --- a/tests/baselines/reference/spreadOfParamsFromGeneratorMakesRequiredParams.errors.txt +++ b/tests/baselines/reference/spreadOfParamsFromGeneratorMakesRequiredParams.errors.txt @@ -12,4 +12,4 @@ tests/cases/compiler/spreadOfParamsFromGeneratorMakesRequiredParams.ts(6,1): err call(function* (a: 'a') { }); // error, 2nd argument required ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2554: Expected 2 arguments, but got 1. -!!! related TS6210 tests/cases/compiler/spreadOfParamsFromGeneratorMakesRequiredParams.ts:3:5: An argument for 'args' was not provided. \ No newline at end of file +!!! related TS6236 tests/cases/compiler/spreadOfParamsFromGeneratorMakesRequiredParams.ts:3:5: Arguments for the rest parameter 'args' were not provided. \ No newline at end of file