@@ -379,6 +379,7 @@ import {
379379 TypeQueryNode,
380380 TypeReferenceNode,
381381 UnaryExpression,
382+ unescapeLeadingUnderscores,
382383 UnionOrIntersectionTypeNode,
383384 UnionTypeNode,
384385 UpdateExpression,
@@ -2095,16 +2096,16 @@ namespace Parser {
20952096 return inContext(NodeFlags.AwaitContext);
20962097 }
20972098
2098- function parseErrorAtCurrentToken(message: DiagnosticMessage, arg0?: any ): DiagnosticWithDetachedLocation | undefined {
2099- return parseErrorAt(scanner.getTokenStart(), scanner.getTokenEnd(), message, arg0 );
2099+ function parseErrorAtCurrentToken(message: DiagnosticMessage, ...args: (string | number | undefined)[] ): DiagnosticWithDetachedLocation | undefined {
2100+ return parseErrorAt(scanner.getTokenStart(), scanner.getTokenEnd(), message, ...args );
21002101 }
21012102
2102- function parseErrorAtPosition(start: number, length: number, message: DiagnosticMessage, arg0?: any ): DiagnosticWithDetachedLocation | undefined {
2103+ function parseErrorAtPosition(start: number, length: number, message: DiagnosticMessage, ...args: (string | number | undefined)[] ): DiagnosticWithDetachedLocation | undefined {
21032104 // Don't report another error if it would just be at the same position as the last error.
21042105 const lastError = lastOrUndefined(parseDiagnostics);
21052106 let result: DiagnosticWithDetachedLocation | undefined;
21062107 if (!lastError || start !== lastError.start) {
2107- result = createDetachedDiagnostic(fileName, start, length, message, arg0 );
2108+ result = createDetachedDiagnostic(fileName, start, length, message, ...args );
21082109 parseDiagnostics.push(result);
21092110 }
21102111
@@ -2114,12 +2115,12 @@ namespace Parser {
21142115 return result;
21152116 }
21162117
2117- function parseErrorAt(start: number, end: number, message: DiagnosticMessage, arg0?: any ): DiagnosticWithDetachedLocation | undefined {
2118- return parseErrorAtPosition(start, end - start, message, arg0 );
2118+ function parseErrorAt(start: number, end: number, message: DiagnosticMessage, ...args: (string | number | undefined)[] ): DiagnosticWithDetachedLocation | undefined {
2119+ return parseErrorAtPosition(start, end - start, message, ...args );
21192120 }
21202121
2121- function parseErrorAtRange(range: TextRange, message: DiagnosticMessage, arg0?: any ): void {
2122- parseErrorAt(range.pos, range.end, message, arg0 );
2122+ function parseErrorAtRange(range: TextRange, message: DiagnosticMessage, ...args: (string | number | undefined)[] ): void {
2123+ parseErrorAt(range.pos, range.end, message, ...args );
21232124 }
21242125
21252126 function scanError(message: DiagnosticMessage, length: number): void {
@@ -2564,14 +2565,14 @@ namespace Parser {
25642565 return node;
25652566 }
25662567
2567- function createMissingNode<T extends Node>(kind: T["kind"], reportAtCurrentPosition: false, diagnosticMessage?: DiagnosticMessage, arg0?: any ): T;
2568- function createMissingNode<T extends Node>(kind: T["kind"], reportAtCurrentPosition: boolean, diagnosticMessage: DiagnosticMessage, arg0?: any ): T;
2569- function createMissingNode<T extends Node>(kind: T["kind"], reportAtCurrentPosition: boolean, diagnosticMessage?: DiagnosticMessage, arg0?: any ): T {
2568+ function createMissingNode<T extends Node>(kind: T["kind"], reportAtCurrentPosition: false, diagnosticMessage?: DiagnosticMessage, ...args: (string | number | undefined)[] ): T;
2569+ function createMissingNode<T extends Node>(kind: T["kind"], reportAtCurrentPosition: boolean, diagnosticMessage: DiagnosticMessage, ...args: (string | number | undefined)[] ): T;
2570+ function createMissingNode<T extends Node>(kind: T["kind"], reportAtCurrentPosition: boolean, diagnosticMessage?: DiagnosticMessage, ...args: (string | number | undefined)[] ): T {
25702571 if (reportAtCurrentPosition) {
2571- parseErrorAtPosition(scanner.getTokenFullStart(), 0, diagnosticMessage!, arg0 );
2572+ parseErrorAtPosition(scanner.getTokenFullStart(), 0, diagnosticMessage!, ...args );
25722573 }
25732574 else if (diagnosticMessage) {
2574- parseErrorAtCurrentToken(diagnosticMessage, arg0 );
2575+ parseErrorAtCurrentToken(diagnosticMessage, ...args );
25752576 }
25762577
25772578 const pos = getNodePos();
@@ -9118,7 +9119,7 @@ namespace Parser {
91189119
91199120 function parseReturnTag(start: number, tagName: Identifier, indent: number, indentText: string): JSDocReturnTag {
91209121 if (some(tags, isJSDocReturnTag)) {
9121- parseErrorAt(tagName.pos, scanner.getTokenStart(), Diagnostics._0_tag_already_specified, tagName.escapedText);
9122+ parseErrorAt(tagName.pos, scanner.getTokenStart(), Diagnostics._0_tag_already_specified, unescapeLeadingUnderscores( tagName.escapedText) );
91229123 }
91239124
91249125 const typeExpression = tryParseTypeExpression();
@@ -9127,7 +9128,7 @@ namespace Parser {
91279128
91289129 function parseTypeTag(start: number, tagName: Identifier, indent?: number, indentText?: string): JSDocTypeTag {
91299130 if (some(tags, isJSDocTypeTag)) {
9130- parseErrorAt(tagName.pos, scanner.getTokenStart(), Diagnostics._0_tag_already_specified, tagName.escapedText);
9131+ parseErrorAt(tagName.pos, scanner.getTokenStart(), Diagnostics._0_tag_already_specified, unescapeLeadingUnderscores( tagName.escapedText) );
91319132 }
91329133
91339134 const typeExpression = parseJSDocTypeExpression(/*mayOmitBraces*/ true);
0 commit comments