29 references to MetadataNode
Microsoft.CodeAnalysis.Workspaces (29)
FindSymbols\SymbolTree\SymbolTreeInfo.Node.cs (2)
24
private readonly struct BuilderNode(string name, int parentIndex, MultiDictionary<
MetadataNode
, ParameterTypeInfo>.ValueSet parameterTypeInfos = default)
30
public readonly MultiDictionary<
MetadataNode
, ParameterTypeInfo>.ValueSet ParameterTypeInfos = parameterTypeInfos;
FindSymbols\SymbolTree\SymbolTreeInfo_Metadata.cs (27)
256
private readonly OrderPreservingMultiDictionary<
MetadataNode
,
MetadataNode
> _parentToChildren = OrderPreservingMultiDictionary<
MetadataNode
,
MetadataNode
>.GetInstance();
257
private readonly
MetadataNode
_rootNode =
MetadataNode
.Allocate(name: "");
269
private readonly MultiDictionary<
MetadataNode
, ParameterTypeInfo> _extensionMethodToParameterTypeInfo = [];
336
foreach (
var
child in children)
337
MetadataNode
.Free(child);
340
MetadataNode
.Free(_rootNode);
365
MetadataNode
parentNode,
374
var
childNode =
MetadataNode
.Allocate(nodeName);
701
var
currentNode = _rootNode;
705
var
childNode = GetOrCreateChildNode(currentNode, simpleName);
710
private readonly
MetadataNode
GetOrCreateChildNode(
711
MetadataNode
currentNode, string simpleName)
713
if (_parentToChildren.TryGetValue(currentNode, static (childNode, simpleName) => childNode.Name == simpleName, simpleName, out
var
childNode))
722
var
newChildNode =
MetadataNode
.Allocate(simpleName);
738
MetadataNode
parentNode,
742
foreach (
var
child in _parentToChildren[parentNode])
790
private static readonly ObjectPool<
MetadataNode
> s_pool = SharedPools.Default<
MetadataNode
>();
798
public static
MetadataNode
Allocate(string name)
800
var
node = s_pool.Allocate();
806
public static void Free(
MetadataNode
node)