Skip to content

Commit 68a0fcf

Browse files
committed
clone more nodes
1 parent c51749a commit 68a0fcf

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/compiler/checker.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8726,7 +8726,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
87268726
}
87278727
if (isJSDocTypeLiteral(node)) {
87288728
return factory.createTypeLiteralNode(map(node.jsDocPropertyTags, t => {
8729-
const name = isIdentifier(t.name) ? t.name : t.name.right;
8729+
const name = visitNode(isIdentifier(t.name) ? t.name : t.name.right, visitExistingNodeTreeSymbols, isIdentifier)!;
87308730
const typeViaParent = getTypeOfPropertyOfType(getTypeFromTypeNode(context, node), name.escapedText);
87318731
const overrideTypeNode = typeViaParent && t.typeExpression && getTypeFromTypeNode(context, t.typeExpression.type) !== typeViaParent ? typeToTypeNodeHelper(typeViaParent, context) : undefined;
87328732

@@ -8765,7 +8765,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
87658765
/*modifiers*/ undefined,
87668766
getEffectiveDotDotDotForParameter(p),
87678767
setTextRange(context, factory.createIdentifier(getNameForJSDocFunctionParameter(p, i)), p),
8768-
p.questionToken,
8768+
p.questionToken ? factory.createToken(SyntaxKind.QuestionToken) : undefined,
87698769
visitNode(p.type, visitExistingNodeTreeSymbols, isTypeNode),
87708770
/*initializer*/ undefined,
87718771
)),
@@ -8780,7 +8780,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
87808780
/*modifiers*/ undefined,
87818781
getEffectiveDotDotDotForParameter(p),
87828782
setTextRange(context, factory.createIdentifier(getNameForJSDocFunctionParameter(p, i)), p),
8783-
p.questionToken,
8783+
p.questionToken ? factory.createToken(SyntaxKind.QuestionToken) : undefined,
87848784
visitNode(p.type, visitExistingNodeTreeSymbols, isTypeNode),
87858785
/*initializer*/ undefined,
87868786
)),
@@ -8798,7 +8798,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
87988798
if (isTypeParameterDeclaration(node)) {
87998799
return factory.updateTypeParameterDeclaration(
88008800
node,
8801-
node.modifiers,
8801+
visitNodes(node.modifiers, visitExistingNodeTreeSymbols, isModifier),
88028802
setTextRange(context, typeParameterToName(getDeclaredTypeOfSymbol(getSymbolOfDeclaration(node)), context), node),
88038803
visitNode(node.constraint, visitExistingNodeTreeSymbols, isTypeNode),
88048804
visitNode(node.default, visitExistingNodeTreeSymbols, isTypeNode),
@@ -8839,7 +8839,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
88398839
return factory.updateImportTypeNode(
88408840
node,
88418841
factory.updateLiteralTypeNode(node.argument, rewriteModuleSpecifier(node, node.argument.literal)),
8842-
node.attributes,
8842+
visitNode(node.attributes, visitExistingNodeTreeSymbols, isImportAttributes),
88438843
visitNode(node.qualifier, visitExistingNodeTreeSymbols, isEntityName),
88448844
visitNodes(node.typeArguments, visitExistingNodeTreeSymbols, isTypeNode),
88458845
node.isTypeOf,
@@ -8904,9 +8904,9 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
89048904
parameterName = result;
89058905
}
89068906
else {
8907-
parameterName = node.parameterName;
8907+
parameterName = factory.cloneNode(node.parameterName);
89088908
}
8909-
return factory.updateTypePredicateNode(node, node.assertsModifier, parameterName, visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode));
8909+
return factory.updateTypePredicateNode(node, node.assertsModifier ? factory.createToken(SyntaxKind.AssertsKeyword) : undefined, parameterName, visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode));
89108910
}
89118911

89128912
if (isTupleTypeNode(node) || isTypeLiteralNode(node) || isMappedTypeNode(node)) {

0 commit comments

Comments
 (0)