@@ -111,7 +111,10 @@ import {
111111 createGetCanonicalFileName,
112112 createGetSymbolWalker,
113113 createModeAwareCacheKey,
114- createPrinter,
114+ createPrinterWithDefaults,
115+ createPrinterWithRemoveComments,
116+ createPrinterWithRemoveCommentsNeverAsciiEscape,
117+ createPrinterWithRemoveCommentsOmitTrailingSemicolon,
115118 createPropertyNameNodeForIdentifierOrLiteral,
116119 createSymbolTable,
117120 createTextWriter,
@@ -6123,7 +6126,9 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
61236126 function symbolToStringWorker(writer: EmitTextWriter) {
61246127 const entity = builder(symbol, meaning!, enclosingDeclaration, nodeFlags)!; // TODO: GH#18217
61256128 // add neverAsciiEscape for GH#39027
6126- const printer = enclosingDeclaration?.kind === SyntaxKind.SourceFile ? createPrinter({ removeComments: true, neverAsciiEscape: true }) : createPrinter({ removeComments: true });
6129+ const printer = enclosingDeclaration?.kind === SyntaxKind.SourceFile
6130+ ? createPrinterWithRemoveCommentsNeverAsciiEscape()
6131+ : createPrinterWithRemoveComments();
61276132 const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
61286133 printer.writeNode(EmitHint.Unspecified, entity, /*sourceFile*/ sourceFile, writer);
61296134 return writer;
@@ -6142,7 +6147,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
61426147 sigOutput = kind === SignatureKind.Construct ? SyntaxKind.ConstructSignature : SyntaxKind.CallSignature;
61436148 }
61446149 const sig = nodeBuilder.signatureToSignatureDeclaration(signature, sigOutput, enclosingDeclaration, toNodeBuilderFlags(flags) | NodeBuilderFlags.IgnoreErrors | NodeBuilderFlags.WriteTypeParametersInQualifiedName);
6145- const printer = createPrinter({ removeComments: true, omitTrailingSemicolon: true } );
6150+ const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon( );
61466151 const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
61476152 printer.writeNode(EmitHint.Unspecified, sig!, /*sourceFile*/ sourceFile, getTrailingSemicolonDeferringWriter(writer)); // TODO: GH#18217
61486153 return writer;
@@ -6155,8 +6160,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
61556160 if (typeNode === undefined) return Debug.fail("should always get typenode");
61566161 // The unresolved type gets a synthesized comment on `any` to hint to users that it's not a plain `any`.
61576162 // Otherwise, we always strip comments out.
6158- const options = { removeComments: type !== unresolvedType };
6159- const printer = createPrinter(options);
6163+ const printer = type !== unresolvedType ? createPrinterWithRemoveComments() : createPrinterWithDefaults();
61606164 const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
61616165 printer.writeNode(EmitHint.Unspecified, typeNode, /*sourceFile*/ sourceFile, writer);
61626166 const result = writer.getText();
@@ -9636,7 +9640,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
96369640 typePredicate.kind === TypePredicateKind.Identifier || typePredicate.kind === TypePredicateKind.AssertsIdentifier ? factory.createIdentifier(typePredicate.parameterName) : factory.createThisTypeNode(),
96379641 typePredicate.type && nodeBuilder.typeToTypeNode(typePredicate.type, enclosingDeclaration, toNodeBuilderFlags(flags) | NodeBuilderFlags.IgnoreErrors | NodeBuilderFlags.WriteTypeParametersInQualifiedName)! // TODO: GH#18217
96389642 );
9639- const printer = createPrinter({ removeComments: true } );
9643+ const printer = createPrinterWithRemoveComments( );
96409644 const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
96419645 printer.writeNode(EmitHint.Unspecified, predicate, /*sourceFile*/ sourceFile, writer);
96429646 return writer;
0 commit comments