@@ -164,17 +164,19 @@ func getTrailingSemicolonDeferringWriter(writer printer.EmitTextWriter) printer.
164
164
}
165
165
166
166
func (c * Checker ) TypeToString (t * Type ) string {
167
- return c .typeToStringEx (t , nil , TypeFormatFlagsAllowUniqueESSymbolType | TypeFormatFlagsUseAliasDefinedOutsideCurrentScope , nil )
167
+ return c .typeToStringEx (t , nil , TypeFormatFlagsAllowUniqueESSymbolType | TypeFormatFlagsUseAliasDefinedOutsideCurrentScope )
168
168
}
169
169
170
170
func toNodeBuilderFlags (flags TypeFormatFlags ) nodebuilder.Flags {
171
171
return nodebuilder .Flags (flags & TypeFormatFlagsNodeBuilderFlagsMask )
172
172
}
173
173
174
- func (c * Checker ) typeToStringEx (t * Type , enclosingDeclaration * ast.Node , flags TypeFormatFlags , writer printer.EmitTextWriter ) string {
175
- if writer == nil {
176
- writer = printer .NewTextWriter ("" )
177
- }
174
+ func (c * Checker ) TypeToStringEx (t * Type , enclosingDeclaration * ast.Node , flags TypeFormatFlags ) string {
175
+ return c .typeToStringEx (t , enclosingDeclaration , flags )
176
+ }
177
+
178
+ func (c * Checker ) typeToStringEx (t * Type , enclosingDeclaration * ast.Node , flags TypeFormatFlags ) string {
179
+ writer := printer .NewTextWriter ("" )
178
180
noTruncation := (c .compilerOptions .NoErrorTruncation == core .TSTrue ) || (flags & TypeFormatFlagsNoTruncation != 0 )
179
181
combinedFlags := toNodeBuilderFlags (flags ) | nodebuilder .FlagsIgnoreErrors
180
182
if noTruncation {
@@ -214,13 +216,16 @@ func (c *Checker) SymbolToString(s *ast.Symbol) string {
214
216
}
215
217
216
218
func (c * Checker ) symbolToString (symbol * ast.Symbol ) string {
217
- return c .symbolToStringEx (symbol , nil , ast .SymbolFlagsAll , SymbolFormatFlagsAllowAnyNodeKind , nil )
219
+ return c .symbolToStringEx (symbol , nil , ast .SymbolFlagsAll , SymbolFormatFlagsAllowAnyNodeKind )
218
220
}
219
221
220
- func (c * Checker ) symbolToStringEx (symbol * ast.Symbol , enclosingDeclaration * ast.Node , meaning ast.SymbolFlags , flags SymbolFormatFlags , writer printer.EmitTextWriter ) string {
221
- if writer == nil {
222
- writer = printer .SingleLineStringWriterPool .Get ().(printer.EmitTextWriter )
223
- }
222
+ func (c * Checker ) SymbolToStringEx (symbol * ast.Symbol , enclosingDeclaration * ast.Node , meaning ast.SymbolFlags , flags SymbolFormatFlags ) string {
223
+ return c .symbolToStringEx (symbol , enclosingDeclaration , meaning , flags )
224
+ }
225
+
226
+ func (c * Checker ) symbolToStringEx (symbol * ast.Symbol , enclosingDeclaration * ast.Node , meaning ast.SymbolFlags , flags SymbolFormatFlags ) string {
227
+ writer , putWriter := printer .GetSingleLineStringWriter ()
228
+ defer putWriter ()
224
229
225
230
nodeFlags := nodebuilder .FlagsIgnoreErrors
226
231
internalNodeFlags := nodebuilder .InternalFlagsNone
@@ -244,14 +249,6 @@ func (c *Checker) symbolToStringEx(symbol *ast.Symbol, enclosingDeclaration *ast
244
249
if enclosingDeclaration != nil {
245
250
sourceFile = ast .GetSourceFileOfNode (enclosingDeclaration )
246
251
}
247
- if writer == printer .SingleLineStringWriterPool .Get ().(printer.EmitTextWriter ) {
248
- // handle uses of the single-line writer during an ongoing write
249
- existing := writer .String ()
250
- defer writer .Clear ()
251
- if existing != "" {
252
- defer writer .WriteKeyword (existing )
253
- }
254
- }
255
252
var printer_ * printer.Printer
256
253
if enclosingDeclaration != nil && enclosingDeclaration .Kind == ast .KindSourceFile {
257
254
printer_ = createPrinterWithRemoveCommentsNeverAsciiEscape (c .diagnosticConstructionContext )
@@ -271,10 +268,14 @@ func (c *Checker) symbolToStringEx(symbol *ast.Symbol, enclosingDeclaration *ast
271
268
}
272
269
273
270
func (c * Checker ) signatureToString (signature * Signature ) string {
274
- return c .signatureToStringEx (signature , nil , TypeFormatFlagsNone , nil )
271
+ return c .signatureToStringEx (signature , nil , TypeFormatFlagsNone )
272
+ }
273
+
274
+ func (c * Checker ) SignatureToStringEx (signature * Signature , enclosingDeclaration * ast.Node , flags TypeFormatFlags ) string {
275
+ return c .signatureToStringEx (signature , enclosingDeclaration , flags )
275
276
}
276
277
277
- func (c * Checker ) signatureToStringEx (signature * Signature , enclosingDeclaration * ast.Node , flags TypeFormatFlags , writer printer. EmitTextWriter ) string {
278
+ func (c * Checker ) signatureToStringEx (signature * Signature , enclosingDeclaration * ast.Node , flags TypeFormatFlags ) string {
278
279
isConstructor := signature .flags & SignatureFlagsConstruct != 0
279
280
var sigOutput ast.Kind
280
281
if flags & TypeFormatFlagsWriteArrowStyleSignature != 0 {
@@ -290,51 +291,34 @@ func (c *Checker) signatureToStringEx(signature *Signature, enclosingDeclaration
290
291
sigOutput = ast .KindCallSignature
291
292
}
292
293
}
293
- if writer == nil {
294
- writer = printer . SingleLineStringWriterPool . Get ().(printer. EmitTextWriter )
295
- }
294
+ writer , putWriter := printer . GetSingleLineStringWriter ()
295
+ defer putWriter ( )
296
+
296
297
combinedFlags := toNodeBuilderFlags (flags ) | nodebuilder .FlagsIgnoreErrors | nodebuilder .FlagsWriteTypeParametersInQualifiedName
297
298
sig := c .nodeBuilder .SignatureToSignatureDeclaration (signature , sigOutput , enclosingDeclaration , combinedFlags , nodebuilder .InternalFlagsNone , nil )
298
299
printer_ := createPrinterWithRemoveCommentsOmitTrailingSemicolon (c .diagnosticConstructionContext )
299
300
var sourceFile * ast.SourceFile
300
301
if enclosingDeclaration != nil {
301
302
sourceFile = ast .GetSourceFileOfNode (enclosingDeclaration )
302
303
}
303
- if writer == printer .SingleLineStringWriterPool .Get ().(printer.EmitTextWriter ) {
304
- // handle uses of the single-line writer during an ongoing write
305
- existing := writer .String ()
306
- defer writer .Clear ()
307
- if existing != "" {
308
- defer writer .WriteKeyword (existing )
309
- }
310
- }
311
304
printer_ .Write (sig /*sourceFile*/ , sourceFile , getTrailingSemicolonDeferringWriter (writer ), nil ) // TODO: GH#18217
312
305
return writer .String ()
313
306
}
314
307
315
308
func (c * Checker ) typePredicateToString (typePredicate * TypePredicate ) string {
316
- return c .typePredicateToStringEx (typePredicate , nil , TypeFormatFlagsUseAliasDefinedOutsideCurrentScope , nil )
309
+ return c .typePredicateToStringEx (typePredicate , nil , TypeFormatFlagsUseAliasDefinedOutsideCurrentScope )
317
310
}
318
311
319
- func (c * Checker ) typePredicateToStringEx (typePredicate * TypePredicate , enclosingDeclaration * ast.Node , flags TypeFormatFlags , writer printer.EmitTextWriter ) string {
320
- if writer == nil {
321
- writer = printer .SingleLineStringWriterPool .Get ().(printer.EmitTextWriter )
322
- }
312
+ func (c * Checker ) typePredicateToStringEx (typePredicate * TypePredicate , enclosingDeclaration * ast.Node , flags TypeFormatFlags ) string {
313
+ writer , putWriter := printer .GetSingleLineStringWriter ()
314
+ defer putWriter ()
323
315
combinedFlags := toNodeBuilderFlags (flags ) | nodebuilder .FlagsIgnoreErrors | nodebuilder .FlagsWriteTypeParametersInQualifiedName
324
316
predicate := c .nodeBuilder .TypePredicateToTypePredicateNode (typePredicate , enclosingDeclaration , combinedFlags , nodebuilder .InternalFlagsNone , nil ) // TODO: GH#18217
325
317
printer_ := createPrinterWithRemoveComments (c .diagnosticConstructionContext )
326
318
var sourceFile * ast.SourceFile
327
319
if enclosingDeclaration != nil {
328
320
sourceFile = ast .GetSourceFileOfNode (enclosingDeclaration )
329
321
}
330
- if writer == printer .SingleLineStringWriterPool .Get ().(printer.EmitTextWriter ) {
331
- // handle uses of the single-line writer during an ongoing write
332
- existing := writer .String ()
333
- defer writer .Clear ()
334
- if existing != "" {
335
- defer writer .WriteKeyword (existing )
336
- }
337
- }
338
322
printer_ .Write (predicate /*sourceFile*/ , sourceFile , writer , nil )
339
323
return writer .String ()
340
324
}
@@ -343,22 +327,6 @@ func (c *Checker) valueToString(value any) string {
343
327
return ValueToString (value )
344
328
}
345
329
346
- func (c * Checker ) WriteSymbol (symbol * ast.Symbol , enclosingDeclaration * ast.Node , meaning ast.SymbolFlags , flags SymbolFormatFlags , writer printer.EmitTextWriter ) string {
347
- return c .symbolToStringEx (symbol , enclosingDeclaration , meaning , flags , writer )
348
- }
349
-
350
- func (c * Checker ) WriteType (t * Type , enclosingDeclaration * ast.Node , flags TypeFormatFlags , writer printer.EmitTextWriter ) string {
351
- return c .typeToStringEx (t , enclosingDeclaration , flags , writer )
352
- }
353
-
354
- func (c * Checker ) WriteSignature (s * Signature , enclosingDeclaration * ast.Node , flags TypeFormatFlags , writer printer.EmitTextWriter ) string {
355
- return c .signatureToStringEx (s , enclosingDeclaration , flags , writer )
356
- }
357
-
358
- func (c * Checker ) WriteTypePredicate (p * TypePredicate , enclosingDeclaration * ast.Node , flags TypeFormatFlags , writer printer.EmitTextWriter ) string {
359
- return c .typePredicateToStringEx (p , enclosingDeclaration , flags , writer )
360
- }
361
-
362
330
func (c * Checker ) formatUnionTypes (types []* Type ) []* Type {
363
331
var result []* Type
364
332
var flags TypeFlags
0 commit comments