@@ -8726,7 +8726,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
8726
8726
}
8727
8727
if (isJSDocTypeLiteral(node)) {
8728
8728
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)! ;
8730
8730
const typeViaParent = getTypeOfPropertyOfType(getTypeFromTypeNode(context, node), name.escapedText);
8731
8731
const overrideTypeNode = typeViaParent && t.typeExpression && getTypeFromTypeNode(context, t.typeExpression.type) !== typeViaParent ? typeToTypeNodeHelper(typeViaParent, context) : undefined;
8732
8732
@@ -8765,7 +8765,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
8765
8765
/*modifiers*/ undefined,
8766
8766
getEffectiveDotDotDotForParameter(p),
8767
8767
setTextRange(context, factory.createIdentifier(getNameForJSDocFunctionParameter(p, i)), p),
8768
- p.questionToken,
8768
+ p.questionToken ? factory.createToken(SyntaxKind.QuestionToken) : undefined ,
8769
8769
visitNode(p.type, visitExistingNodeTreeSymbols, isTypeNode),
8770
8770
/*initializer*/ undefined,
8771
8771
)),
@@ -8780,7 +8780,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
8780
8780
/*modifiers*/ undefined,
8781
8781
getEffectiveDotDotDotForParameter(p),
8782
8782
setTextRange(context, factory.createIdentifier(getNameForJSDocFunctionParameter(p, i)), p),
8783
- p.questionToken,
8783
+ p.questionToken ? factory.createToken(SyntaxKind.QuestionToken) : undefined ,
8784
8784
visitNode(p.type, visitExistingNodeTreeSymbols, isTypeNode),
8785
8785
/*initializer*/ undefined,
8786
8786
)),
@@ -8798,7 +8798,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
8798
8798
if (isTypeParameterDeclaration(node)) {
8799
8799
return factory.updateTypeParameterDeclaration(
8800
8800
node,
8801
- node.modifiers,
8801
+ visitNodes( node.modifiers, visitExistingNodeTreeSymbols, isModifier) ,
8802
8802
setTextRange(context, typeParameterToName(getDeclaredTypeOfSymbol(getSymbolOfDeclaration(node)), context), node),
8803
8803
visitNode(node.constraint, visitExistingNodeTreeSymbols, isTypeNode),
8804
8804
visitNode(node.default, visitExistingNodeTreeSymbols, isTypeNode),
@@ -8839,7 +8839,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
8839
8839
return factory.updateImportTypeNode(
8840
8840
node,
8841
8841
factory.updateLiteralTypeNode(node.argument, rewriteModuleSpecifier(node, node.argument.literal)),
8842
- node.attributes,
8842
+ visitNode( node.attributes, visitExistingNodeTreeSymbols, isImportAttributes) ,
8843
8843
visitNode(node.qualifier, visitExistingNodeTreeSymbols, isEntityName),
8844
8844
visitNodes(node.typeArguments, visitExistingNodeTreeSymbols, isTypeNode),
8845
8845
node.isTypeOf,
@@ -8904,9 +8904,9 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
8904
8904
parameterName = result;
8905
8905
}
8906
8906
else {
8907
- parameterName = node.parameterName;
8907
+ parameterName = factory.cloneNode( node.parameterName) ;
8908
8908
}
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));
8910
8910
}
8911
8911
8912
8912
if (isTupleTypeNode(node) || isTypeLiteralNode(node) || isMappedTypeNode(node)) {
0 commit comments