@@ -435,11 +435,9 @@ export function createSyntacticTypeNodeBuilder(
435435 if ( ! resolver . canReuseTypeNode ( context , node ) ) {
436436 return resolver . serializeExistingTypeNode ( context , node ) ;
437437 }
438- const specifier = rewriteModuleSpecifier ( node , node . argument . literal ) ;
439- const literal = specifier === node . argument . literal ? reuseNode ( context , node . argument . literal ) : specifier ;
440438 return factory . updateImportTypeNode (
441439 node ,
442- literal === node . argument . literal ? reuseNode ( context , node . argument ) : factory . createLiteralTypeNode ( literal ) ,
440+ factory . updateLiteralTypeNode ( node . argument , rewriteModuleSpecifier ( node , node . argument . literal ) ) ,
443441 visitNode ( node . attributes , visitExistingNodeTreeSymbols , isImportAttributes ) ,
444442 visitNode ( node . qualifier , visitExistingNodeTreeSymbols , isEntityName ) ,
445443 visitNodes ( node . typeArguments , visitExistingNodeTreeSymbols , isTypeNode ) ,
@@ -614,7 +612,10 @@ export function createSyntacticTypeNodeBuilder(
614612
615613 function rewriteModuleSpecifier ( parent : ImportTypeNode , lit : StringLiteral ) {
616614 const newName = resolver . getModuleSpecifierOverride ( context , parent , lit ) ;
617- return newName ? setOriginalNode ( factory . createStringLiteral ( newName ) , lit ) : lit ;
615+ if ( newName ) {
616+ return setOriginalNode ( factory . createStringLiteral ( newName ) , lit ) ;
617+ }
618+ return visitNode ( lit , visitExistingNodeTreeSymbols , isStringLiteral ) ! ;
618619 }
619620 }
620621 }
@@ -1122,16 +1123,15 @@ export function createSyntacticTypeNodeBuilder(
11221123 ) ;
11231124 }
11241125 function reuseTypeParameters ( typeParameters : NodeArray < TypeParameterDeclaration > | undefined , context : SyntacticTypeNodeBuilderContext ) {
1125- return typeParameters ?. map ( tp => {
1126- const { node : tpName } = resolver . trackExistingEntityName ( context , tp . name ) ;
1127- return factory . updateTypeParameterDeclaration (
1126+ return typeParameters ?. map ( tp =>
1127+ factory . updateTypeParameterDeclaration (
11281128 tp ,
11291129 tp . modifiers ?. map ( m => reuseNode ( context , m ) ) ,
1130- tpName ,
1130+ reuseNode ( context , tp . name ) ,
11311131 serializeExistingTypeNodeWithFallback ( tp . constraint , context ) ,
11321132 serializeExistingTypeNodeWithFallback ( tp . default , context ) ,
1133- ) ;
1134- } ) ;
1133+ )
1134+ ) ;
11351135 }
11361136
11371137 function typeFromObjectLiteralMethod ( method : MethodDeclaration , name : PropertyName , context : SyntacticTypeNodeBuilderContext , isConstContext : boolean ) {
0 commit comments