@@ -925,6 +925,7 @@ import {
925
925
StringLiteralLike,
926
926
StringLiteralType,
927
927
StringMappingType,
928
+ stringToToken,
928
929
stripQuotes,
929
930
StructuredType,
930
931
SubstitutionType,
@@ -23209,15 +23210,17 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
23209
23210
break;
23210
23211
case SyntaxKind.Parameter:
23211
23212
const param = declaration as ParameterDeclaration;
23212
- if (isIdentifier(param.name) &&
23213
- (isCallSignatureDeclaration(param.parent) || isMethodSignature(param.parent) || isFunctionTypeNode(param.parent)) &&
23214
- param.parent.parameters.indexOf(param) > -1 &&
23215
- (resolveName(param, param.name.escapedText, SymbolFlags.Type, undefined, param.name.escapedText, /*isUse*/ true) ||
23216
- param.name.originalKeywordKind && isTypeNodeKind(param.name.originalKeywordKind))) {
23217
- const newName = "arg" + param.parent.parameters.indexOf(param);
23218
- const typeName = declarationNameToString(param.name) + (param.dotDotDotToken ? "[]" : "");
23219
- errorOrSuggestion(noImplicitAny, declaration, Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1, newName, typeName);
23220
- return;
23213
+ if (isIdentifier(param.name)) {
23214
+ const originalKeywordKind = stringToToken(param.name.escapedText as string);1
23215
+ if ((isCallSignatureDeclaration(param.parent) || isMethodSignature(param.parent) || isFunctionTypeNode(param.parent)) &&
23216
+ param.parent.parameters.indexOf(param) > -1 &&
23217
+ (resolveName(param, param.name.escapedText, SymbolFlags.Type, undefined, param.name.escapedText, /*isUse*/ true) ||
23218
+ originalKeywordKind && isTypeNodeKind(originalKeywordKind))) {
23219
+ const newName = "arg" + param.parent.parameters.indexOf(param);
23220
+ const typeName = declarationNameToString(param.name) + (param.dotDotDotToken ? "[]" : "");
23221
+ errorOrSuggestion(noImplicitAny, declaration, Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1, newName, typeName);
23222
+ return;
23223
+ }
23221
23224
}
23222
23225
diagnostic = (declaration as ParameterDeclaration).dotDotDotToken ?
23223
23226
noImplicitAny ? Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage :
@@ -46867,7 +46870,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
46867
46870
46868
46871
function checkGrammarNameInLetOrConstDeclarations(name: Identifier | BindingPattern): boolean {
46869
46872
if (name.kind === SyntaxKind.Identifier) {
46870
- if (name.originalKeywordKind === SyntaxKind.LetKeyword ) {
46873
+ if (name.escapedText === "let" ) {
46871
46874
return grammarErrorOnNode(name, Diagnostics.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations);
46872
46875
}
46873
46876
}
0 commit comments