27 references to MetadataNode
Microsoft.CodeAnalysis.Workspaces (27)
FindSymbols\SymbolTree\SymbolTreeInfo_Metadata.cs (27)
256private readonly OrderPreservingMultiDictionary<MetadataNode, MetadataNode> _parentToChildren = OrderPreservingMultiDictionary<MetadataNode, MetadataNode>.GetInstance(); 257private readonly MetadataNode _rootNode = MetadataNode.Allocate(name: ""); 269private readonly MultiDictionary<MetadataNode, (ParameterTypeInfo typeInfo, bool isModernExtension)> _extensionMemberToParameterTypeInfo = []; 336foreach (var child in children) 337MetadataNode.Free(child); 340MetadataNode.Free(_rootNode); 365MetadataNode parentNode, 374var childNode = MetadataNode.Allocate(nodeName); 880var currentNode = _rootNode; 884var childNode = GetOrCreateChildNode(currentNode, simpleName); 889private readonly MetadataNode GetOrCreateChildNode( 890MetadataNode currentNode, string simpleName) 892if (_parentToChildren.TryGetValue(currentNode, static (childNode, simpleName) => childNode.Name == simpleName, simpleName, out var childNode)) 901var newChildNode = MetadataNode.Allocate(simpleName); 917MetadataNode parentNode, 921foreach (var child in _parentToChildren[parentNode]) 977private static readonly ObjectPool<MetadataNode> s_pool = SharedPools.Default<MetadataNode>(); 985public static MetadataNode Allocate(string name) 987var node = s_pool.Allocate(); 993public static void Free(MetadataNode node)