()
| 286 | } |
| 287 | |
| 288 | func (c *Checker) getNodeBuilder() (*NodeBuilder, func()) { |
| 289 | releaseNodes := func() { |
| 290 | c.typeToStringNodebuilder.EmitContext().Factory.ReleaseArenas() // Allow any allocated nodes to be freed if they're no longer in a cache |
| 291 | } |
| 292 | if c.typeToStringNodebuilder != nil { |
| 293 | return c.typeToStringNodebuilder, releaseNodes |
| 294 | } |
| 295 | c.typeToStringNodebuilder = c.getNodeBuilderEx(nil /*idToSymbol*/) |
| 296 | return c.typeToStringNodebuilder, releaseNodes |
| 297 | } |
| 298 | |
| 299 | func (c *Checker) getNodeBuilderEx(idToSymbol map[*ast.IdentifierNode]*ast.Symbol) *NodeBuilder { |
| 300 | b := NewNodeBuilderEx(c, printer.NewEmitContext(), idToSymbol) |
no test coverage detected