Skip to content

Commit 51c76ac

Browse files
author
Arthur Ozga
committed
fix malformed nodes
1 parent d9b68e9 commit 51c76ac

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

src/compiler/checker.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2752,7 +2752,7 @@ namespace ts {
27522752

27532753
function indexInfoToIndexSignatureDeclarationHelper(indexInfo: IndexInfo, kind: IndexKind, context: NodeBuilderContext): IndexSignatureDeclaration {
27542754
const indexerTypeNode = createKeywordTypeNode(kind === IndexKind.String ? SyntaxKind.StringKeyword : SyntaxKind.NumberKeyword);
2755-
const name = getNameFromIndexInfo(indexInfo);
2755+
const name = getNameFromIndexInfo(indexInfo) || "x";
27562756

27572757
const indexingParameter = createParameter(
27582758
/*decorators*/ undefined,
@@ -2830,8 +2830,8 @@ namespace ts {
28302830
initializer = parameterDeclaration.initializer;
28312831
}
28322832
const parameterNode = createParameter(
2833-
parameterDeclaration.decorators,
2834-
parameterDeclaration.modifiers,
2833+
/*decorators*/ undefined,
2834+
cloneNodeArray(parameterDeclaration.modifiers),
28352835
(parameterDeclaration ? isRestParameter(parameterDeclaration) : isTransientSymbol(parameterSymbol) && parameterSymbol.isRestParameter) ?
28362836
createToken(SyntaxKind.DotDotDotToken) :
28372837
undefined,

src/compiler/factory.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,10 @@ namespace ts {
8989
return nodeIsSynthesized(clone) ? clone : getSynthesizedClone(clone);
9090
}
9191

92+
export function cloneNodeArray<T extends Node>(nodeArray: NodeArray<T>) {
93+
return nodeArray && nodeArray.map(getDeepSynthesizedClone);
94+
}
95+
9296
// Literals
9397

9498
export function createLiteral(value: string): StringLiteral;

src/compiler/utilities.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,7 @@ namespace ts {
466466
return getFullWidth(name) === 0 ? "(Missing)" : getTextOfNode(name);
467467
}
468468

469-
export function getNameFromIndexInfo(info: IndexInfo) {
469+
export function getNameFromIndexInfo(info: IndexInfo): string | undefined {
470470
return info.declaration ? declarationNameToString(info.declaration.parameters[0].name) : undefined;
471471
}
472472

0 commit comments

Comments
 (0)