@@ -111,10 +111,7 @@ import {
111
111
createGetCanonicalFileName,
112
112
createGetSymbolWalker,
113
113
createModeAwareCacheKey,
114
- createPrinterWithDefaults,
115
- createPrinterWithRemoveComments,
116
- createPrinterWithRemoveCommentsNeverAsciiEscape,
117
- createPrinterWithRemoveCommentsOmitTrailingSemicolon,
114
+ createOrReusePrinter,
118
115
createPropertyNameNodeForIdentifierOrLiteral,
119
116
createSymbolTable,
120
117
createTextWriter,
@@ -6127,8 +6124,8 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
6127
6124
const entity = builder(symbol, meaning!, enclosingDeclaration, nodeFlags)!; // TODO: GH#18217
6128
6125
// add neverAsciiEscape for GH#39027
6129
6126
const printer = enclosingDeclaration?.kind === SyntaxKind.SourceFile
6130
- ? createPrinterWithRemoveCommentsNeverAsciiEscape( )
6131
- : createPrinterWithRemoveComments( );
6127
+ ? createOrReusePrinter({ removeComments: true, neverAsciiEscape: true } )
6128
+ : createOrReusePrinter({ removeComments: true } );
6132
6129
const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
6133
6130
printer.writeNode(EmitHint.Unspecified, entity, /*sourceFile*/ sourceFile, writer);
6134
6131
return writer;
@@ -6147,7 +6144,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
6147
6144
sigOutput = kind === SignatureKind.Construct ? SyntaxKind.ConstructSignature : SyntaxKind.CallSignature;
6148
6145
}
6149
6146
const sig = nodeBuilder.signatureToSignatureDeclaration(signature, sigOutput, enclosingDeclaration, toNodeBuilderFlags(flags) | NodeBuilderFlags.IgnoreErrors | NodeBuilderFlags.WriteTypeParametersInQualifiedName);
6150
- const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon( );
6147
+ const printer = createOrReusePrinter({ removeComments: true, omitTrailingSemicolon: true } );
6151
6148
const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
6152
6149
printer.writeNode(EmitHint.Unspecified, sig!, /*sourceFile*/ sourceFile, getTrailingSemicolonDeferringWriter(writer)); // TODO: GH#18217
6153
6150
return writer;
@@ -6160,7 +6157,8 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
6160
6157
if (typeNode === undefined) return Debug.fail("should always get typenode");
6161
6158
// The unresolved type gets a synthesized comment on `any` to hint to users that it's not a plain `any`.
6162
6159
// Otherwise, we always strip comments out.
6163
- const printer = type !== unresolvedType ? createPrinterWithRemoveComments() : createPrinterWithDefaults();
6160
+ const options = { removeComments: type !== unresolvedType };
6161
+ const printer = createOrReusePrinter(options);
6164
6162
const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
6165
6163
printer.writeNode(EmitHint.Unspecified, typeNode, /*sourceFile*/ sourceFile, writer);
6166
6164
const result = writer.getText();
@@ -9640,7 +9638,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
9640
9638
typePredicate.kind === TypePredicateKind.Identifier || typePredicate.kind === TypePredicateKind.AssertsIdentifier ? factory.createIdentifier(typePredicate.parameterName) : factory.createThisTypeNode(),
9641
9639
typePredicate.type && nodeBuilder.typeToTypeNode(typePredicate.type, enclosingDeclaration, toNodeBuilderFlags(flags) | NodeBuilderFlags.IgnoreErrors | NodeBuilderFlags.WriteTypeParametersInQualifiedName)! // TODO: GH#18217
9642
9640
);
9643
- const printer = createPrinterWithRemoveComments( );
9641
+ const printer = createOrReusePrinter({ removeComments: true } );
9644
9642
const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
9645
9643
printer.writeNode(EmitHint.Unspecified, predicate, /*sourceFile*/ sourceFile, writer);
9646
9644
return writer;
0 commit comments