CodeModel\AbstractCodeModelService.cs (19)
41private readonly ConditionalWeakTable<SyntaxTree, IBidirectionalMap<SyntaxNodeKey, SyntaxNode>> _treeToNodeKeyMaps = new();
103private IBidirectionalMap<SyntaxNodeKey, SyntaxNode> BuildNodeKeyMap(SyntaxTree syntaxTree)
106var nodeKeyMap = BidirectionalMap<SyntaxNodeKey, SyntaxNode>.Empty;
118var key = new SyntaxNodeKey(name, ordinal);
125private IBidirectionalMap<SyntaxNodeKey, SyntaxNode> GetNodeKeyMap(SyntaxTree syntaxTree)
128public SyntaxNodeKey GetNodeKey(SyntaxNode node)
130var nodeKey = TryGetNodeKey(node);
140public SyntaxNodeKey TryGetNodeKey(SyntaxNode node)
143if (!nodeKeyMap.TryGetKey(node, out var nodeKey))
145return SyntaxNodeKey.Empty;
151public SyntaxNode LookupNode(SyntaxNodeKey nodeKey, SyntaxTree syntaxTree)
162public bool TryLookupNode(SyntaxNodeKey nodeKey, SyntaxTree syntaxTree, [NotNullWhen(true)] out SyntaxNode? node)
335.FirstOrDefault(n => TryGetNodeKey(n) != SyntaxNodeKey.Empty);
362var nodeKey = parentNode.AncestorsAndSelf()
364.FirstOrDefault(nk => nk != SyntaxNodeKey.Empty);
366if (nodeKey == SyntaxNodeKey.Empty)
405.FirstOrDefault(n => TryGetNodeKey(n) != SyntaxNodeKey.Empty);
432.FirstOrDefault(n => TryGetNodeKey(n) != SyntaxNodeKey.Empty);
451.FirstOrDefault(n => TryGetNodeKey(n) != SyntaxNodeKey.Empty);