Skip to content

Commit 5835e5d

Browse files
authored
Use non-diagnostic reporting symbol lookups for API uses of getResolvedSymbol (microsoft#2396)
1 parent de66ba4 commit 5835e5d

File tree

3 files changed

+19
-2
lines changed

3 files changed

+19
-2
lines changed

internal/checker/checker.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13450,6 +13450,22 @@ func (c *Checker) getResolvedSymbolOrNil(node *ast.Node) *ast.Symbol {
1345013450
return c.symbolNodeLinks.Get(node).resolvedSymbol
1345113451
}
1345213452

13453+
func (c *Checker) getResolvedSymbolNoDiagnostics(node *ast.Node) *ast.Symbol {
13454+
links := c.symbolNodeLinks.Get(node)
13455+
if links.resolvedSymbol != nil {
13456+
return links.resolvedSymbol
13457+
}
13458+
if links.resolvedSymbolNoDiagnostics == nil {
13459+
var symbol *ast.Symbol
13460+
if !ast.NodeIsMissing(node) {
13461+
symbol = c.resolveName(node, node.Text(), ast.SymbolFlagsValue|ast.SymbolFlagsExportValue,
13462+
nil, !ast.IsWriteOnlyAccess(node), false /*excludeGlobals*/)
13463+
}
13464+
links.resolvedSymbolNoDiagnostics = core.OrElse(symbol, c.unknownSymbol)
13465+
}
13466+
return links.resolvedSymbolNoDiagnostics
13467+
}
13468+
1345313469
func (c *Checker) getCannotFindNameDiagnosticForName(node *ast.Node) *diagnostics.Message {
1345413470
switch node.Text() {
1345513471
case "document", "console":

internal/checker/emitresolver.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -828,7 +828,7 @@ func (r *EmitResolver) getReferenceResolver() binder.ReferenceResolver {
828828
if r.referenceResolver == nil {
829829
r.referenceResolver = binder.NewReferenceResolver(r.checker.compilerOptions, binder.ReferenceResolverHooks{
830830
ResolveName: r.checker.resolveName,
831-
GetResolvedSymbol: r.checker.getResolvedSymbol,
831+
GetResolvedSymbol: r.checker.getResolvedSymbolNoDiagnostics,
832832
GetMergedSymbol: r.checker.getMergedSymbol,
833833
GetParentOfSymbol: r.checker.getParentOfSymbol,
834834
GetSymbolOfDeclaration: r.checker.getSymbolOfDeclaration,

internal/checker/types.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,8 @@ type NodeLinks struct {
337337
}
338338

339339
type SymbolNodeLinks struct {
340-
resolvedSymbol *ast.Symbol // Resolved symbol associated with node
340+
resolvedSymbol *ast.Symbol // Resolved symbol associated with node
341+
resolvedSymbolNoDiagnostics *ast.Symbol // Resolved symbol associated with node, generated without producing diagnostics for an API call
341342
}
342343

343344
type TypeNodeLinks struct {

0 commit comments

Comments
 (0)