MCPcopy Create free account
hub / github.com/microsoft/typescript-go / resolveJSDoc

Method resolveJSDoc

internal/ast/ast.go:2612–2637  ·  view source on GitHub ↗
(n *Node)

Source from the content-addressed store, hash-verified

2610}
2611
2612func (node *SourceFile) resolveJSDoc(n *Node) []*Node {
2613 if parseJSDocForNode == nil {
2614 panic("resolveJSDoc called but parseJSDocForNode is not registered; ensure the parser package is imported")
2615 }
2616 // Fast path: check cache under read lock
2617 node.jsdocMu.RLock()
2618 if jsdocs, ok := node.jsdocCache[n]; ok {
2619 node.jsdocMu.RUnlock()
2620 return jsdocs
2621 }
2622 node.jsdocMu.RUnlock()
2623
2624 // Slow path: parse and cache under write lock
2625 node.jsdocMu.Lock()
2626 defer node.jsdocMu.Unlock()
2627 // Double-check after acquiring write lock
2628 if jsdocs, ok := node.jsdocCache[n]; ok {
2629 return jsdocs
2630 }
2631 jsdocs := parseJSDocForNode(node, n)
2632 if node.jsdocCache == nil {
2633 node.jsdocCache = make(map[*Node][]*Node)
2634 }
2635 node.jsdocCache[n] = jsdocs
2636 return jsdocs
2637}
2638
2639func (node *SourceFile) BindDiagnostics() []*Diagnostic {
2640 return node.bindDiagnostics

Callers 1

JSDocMethod · 0.80

Calls 5

panicFunction · 0.85
parseJSDocForNodeFunction · 0.85
makeFunction · 0.50
LockMethod · 0.45
UnlockMethod · 0.45

Tested by

no test coverage detected