(symbol *ast.Symbol, enclosingDeclaration *ast.Node, meaning ast.SymbolFlags, flags SymbolFormatFlags)
| 260 | } |
| 261 | |
| 262 | func (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 | |
| 309 | func (c *Checker) signatureToString(signature *Signature) string { |
| 310 | return c.signatureToStringEx(signature, nil, TypeFormatFlagsNone, nil) |
no test coverage detected