@@ -8684,7 +8684,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
8684
8684
}
8685
8685
if (isJSDocTypeLiteral(node)) {
8686
8686
return factory.createTypeLiteralNode(map(node.jsDocPropertyTags, t => {
8687
- const name = isIdentifier(t.name) ? t.name : t.name.right;
8687
+ const name = visitNode( isIdentifier(t.name) ? t.name : t.name.right, visitExistingNodeTreeSymbols, isIdentifier)! ;
8688
8688
const typeViaParent = getTypeOfPropertyOfType(getTypeFromTypeNode(context, node), name.escapedText);
8689
8689
const overrideTypeNode = typeViaParent && t.typeExpression && getTypeFromTypeNode(context, t.typeExpression.type) !== typeViaParent ? typeToTypeNodeHelper(typeViaParent, context) : undefined;
8690
8690
@@ -8723,7 +8723,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
8723
8723
/*modifiers*/ undefined,
8724
8724
getEffectiveDotDotDotForParameter(p),
8725
8725
setTextRange(context, factory.createIdentifier(getNameForJSDocFunctionParameter(p, i)), p),
8726
- p.questionToken,
8726
+ factory.cloneNode( p.questionToken) ,
8727
8727
visitNode(p.type, visitExistingNodeTreeSymbols, isTypeNode),
8728
8728
/*initializer*/ undefined,
8729
8729
)),
@@ -8738,7 +8738,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
8738
8738
/*modifiers*/ undefined,
8739
8739
getEffectiveDotDotDotForParameter(p),
8740
8740
setTextRange(context, factory.createIdentifier(getNameForJSDocFunctionParameter(p, i)), p),
8741
- p.questionToken,
8741
+ factory.cloneNode( p.questionToken) ,
8742
8742
visitNode(p.type, visitExistingNodeTreeSymbols, isTypeNode),
8743
8743
/*initializer*/ undefined,
8744
8744
)),
@@ -8756,7 +8756,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
8756
8756
if (isTypeParameterDeclaration(node)) {
8757
8757
return factory.updateTypeParameterDeclaration(
8758
8758
node,
8759
- node.modifiers,
8759
+ visitNodes( node.modifiers, visitExistingNodeTreeSymbols, isModifier) ,
8760
8760
setTextRange(context, typeParameterToName(getDeclaredTypeOfSymbol(getSymbolOfDeclaration(node)), context), node),
8761
8761
visitNode(node.constraint, visitExistingNodeTreeSymbols, isTypeNode),
8762
8762
visitNode(node.default, visitExistingNodeTreeSymbols, isTypeNode),
@@ -8797,8 +8797,8 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
8797
8797
return factory.updateImportTypeNode(
8798
8798
node,
8799
8799
factory.updateLiteralTypeNode(node.argument, rewriteModuleSpecifier(node, node.argument.literal)),
8800
- node.attributes,
8801
- node.qualifier,
8800
+ visitNode( node.attributes, visitExistingNodeTreeSymbols, isImportAttributes) ,
8801
+ visitNode( node.qualifier, visitExistingNodeTreeSymbols, isEntityName) ,
8802
8802
visitNodes(node.typeArguments, visitExistingNodeTreeSymbols, isTypeNode),
8803
8803
node.isTypeOf,
8804
8804
);
@@ -8877,9 +8877,9 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
8877
8877
parameterName = result;
8878
8878
}
8879
8879
else {
8880
- parameterName = node.parameterName;
8880
+ parameterName = factory.cloneNode( node.parameterName) ;
8881
8881
}
8882
- return factory.updateTypePredicateNode(node, node.assertsModifier, parameterName, visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode));
8882
+ return factory.updateTypePredicateNode(node, factory.cloneNode( node.assertsModifier) , parameterName, visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode));
8883
8883
}
8884
8884
8885
8885
if (isTupleTypeNode(node) || isTypeLiteralNode(node) || isMappedTypeNode(node)) {
0 commit comments