MCPcopy
hub / github.com/microsoft/typescript-go / symbolToStringEx

Method symbolToStringEx

internal/checker/printer.go:262–307  ·  view source on GitHub ↗
(symbol *ast.Symbol, enclosingDeclaration *ast.Node, meaning ast.SymbolFlags, flags SymbolFormatFlags)

Source from the content-addressed store, hash-verified

260}
261
262func (c *Checker) symbolToStringEx(symbol *ast.Symbol, enclosingDeclaration *ast.Node, meaning ast.SymbolFlags, flags SymbolFormatFlags) string {
263 writer, putWriter := printer.GetSingleLineStringWriter()
264 defer putWriter()
265
266 nodeFlags := nodebuilder.FlagsIgnoreErrors
267 internalNodeFlags := nodebuilder.InternalFlagsNone
268 if flags&SymbolFormatFlagsUseOnlyExternalAliasing != 0 {
269 nodeFlags |= nodebuilder.FlagsUseOnlyExternalAliasing
270 }
271 if flags&SymbolFormatFlagsWriteTypeParametersOrArguments != 0 {
272 nodeFlags |= nodebuilder.FlagsWriteTypeParametersInQualifiedName
273 }
274 if flags&SymbolFormatFlagsUseAliasDefinedOutsideCurrentScope != 0 {
275 nodeFlags |= nodebuilder.FlagsUseAliasDefinedOutsideCurrentScope
276 }
277 if flags&SymbolFormatFlagsDoNotIncludeSymbolChain != 0 {
278 internalNodeFlags |= nodebuilder.InternalFlagsDoNotIncludeSymbolChain
279 }
280 if flags&SymbolFormatFlagsWriteComputedProps != 0 {
281 internalNodeFlags |= nodebuilder.InternalFlagsWriteComputedProps
282 }
283
284 nodeBuilder, release := c.getNodeBuilder()
285 defer release()
286 var sourceFile *ast.SourceFile
287 if enclosingDeclaration != nil {
288 sourceFile = ast.GetSourceFileOfNode(enclosingDeclaration)
289 }
290 var printer_ *printer.Printer
291 // add neverAsciiEscape for GH#39027
292 if enclosingDeclaration != nil && enclosingDeclaration.Kind == ast.KindSourceFile {
293 printer_ = createPrinterWithRemoveCommentsNeverAsciiEscape(nodeBuilder.EmitContext())
294 } else {
295 printer_ = createPrinterWithRemoveComments(nodeBuilder.EmitContext())
296 }
297
298 var builder func(symbol *ast.Symbol, meaning ast.SymbolFlags, enclosingDeclaration *ast.Node, flags nodebuilder.Flags, internalFlags nodebuilder.InternalFlags, tracker nodebuilder.SymbolTracker) *ast.Node
299 if flags&SymbolFormatFlagsAllowAnyNodeKind != 0 {
300 builder = nodeBuilder.SymbolToNode
301 } else {
302 builder = nodeBuilder.SymbolToEntityName
303 }
304 entity := builder(symbol, meaning, enclosingDeclaration, nodeFlags, internalNodeFlags, nil) // TODO: GH#18217
305 printer_.Write(entity /*sourceFile*/, sourceFile, getTrailingSemicolonDeferringWriter(writer), nil) // TODO: GH#18217
306 return writer.String()
307}
308
309func (c *Checker) signatureToString(signature *Signature) string {
310 return c.signatureToStringEx(signature, nil, TypeFormatFlagsNone, nil)

Callers 5

symbolToStringMethod · 0.95
SymbolToStringExMethod · 0.95
getFullyQualifiedNameMethod · 0.95
IsAnySymbolAccessibleMethod · 0.95

Calls 9

getNodeBuilderMethod · 0.95
WriteMethod · 0.95
GetSourceFileOfNodeFunction · 0.92
StringMethod · 0.65
EmitContextMethod · 0.45

Tested by

no test coverage detected