2 types derived from GreenNode
Microsoft.CodeAnalysis (1)
Syntax\InternalSyntax\SyntaxList.cs (1)
10internal abstract partial class SyntaxList : GreenNode
Microsoft.CodeAnalysis.CSharp (1)
Syntax\InternalSyntax\CSharpSyntaxNode.cs (1)
19internal abstract class CSharpSyntaxNode : GreenNode
674 references to GreenNode
Microsoft.CodeAnalysis (391)
SourceGeneration\ISyntaxHelper.cs (2)
32void AddAliases(GreenNode node, ArrayBuilder<(string aliasName, string symbolName)> aliases, bool global); 57public abstract void AddAliases(GreenNode node, ArrayBuilder<(string aliasName, string symbolName)> aliases, bool global);
Syntax\ChildSyntaxList.cs (9)
37internal static int CountNodes(GreenNode green) 43var child = green.GetSlot(i); 82private static int Occupancy(GreenNode green) 130GreenNode? greenChild; 131var green = node.Green; 227GreenNode? green = node.Green; 240GreenNode? greenChild = green.GetSlot(slot); 305GreenNode? greenChild; 306var green = node.Green;
Syntax\GreenNode.cs (60)
43private static readonly ConditionalWeakTable<GreenNode, DiagnosticInfo[]> s_diagnosticsTable = 44new ConditionalWeakTable<GreenNode, DiagnosticInfo[]>(); 46private static readonly ConditionalWeakTable<GreenNode, SyntaxAnnotation[]> s_annotationsTable = 47new ConditionalWeakTable<GreenNode, SyntaxAnnotation[]>(); 115protected void AdjustFlagsAndWidth(GreenNode node) 165internal abstract GreenNode? GetSlot(int index); 167internal GreenNode GetRequiredSlot(int index) 169var node = GetSlot(index); 190var child = this.GetSlot(i); 231var child = GetSlot(i); 587internal abstract GreenNode SetAnnotations(SyntaxAnnotation[]? annotations); 606internal abstract GreenNode SetDiagnostics(DiagnosticInfo[]? diagnostics); 635var stack = ArrayBuilder<(GreenNode node, bool leading, bool trailing)>.GetInstance(); 646ArrayBuilder<(GreenNode node, bool leading, bool trailing)> stack) 651var currentNode = current.node; 672var child = currentNode.GetSlot(i); 684private static int GetFirstNonNullChildIndex(GreenNode node) 690var child = node.GetSlot(firstIndex); 700private static int GetLastNonNullChildIndex(GreenNode node) 706var child = node.GetSlot(lastIndex); 733public virtual GreenNode? GetLeadingTriviaCore() { return null; } 734public virtual GreenNode? GetTrailingTriviaCore() { return null; } 736public virtual GreenNode WithLeadingTrivia(GreenNode? trivia) 741public virtual GreenNode WithTrailingTrivia(GreenNode? trivia) 746internal GreenNode? GetFirstTerminal() 748GreenNode? node = this; 752GreenNode? firstChild = null; 755var child = node.GetSlot(i); 772internal GreenNode? GetLastTerminal() 774GreenNode? node = this; 778GreenNode? lastChild = null; 781var child = node.GetSlot(i); 798internal GreenNode? GetLastNonmissingTerminal() 800GreenNode? node = this; 804GreenNode? nonmissingChild = null; 807var child = node.GetSlot(i); 826public virtual bool IsEquivalentTo([NotNullWhen(true)] GreenNode? other) 841private static bool EquivalentToInternal(GreenNode node1, GreenNode node2) 877var node1Child = node1.GetSlot(i); 878var node2Child = node2.GetSlot(i); 903public static GreenNode? CreateList<TFrom>(IEnumerable<TFrom>? enumerable, Func<TFrom, GreenNode> select) 912public static GreenNode? CreateList<TFrom>(List<TFrom> list, Func<TFrom, GreenNode> select) 926var array = new ArrayElement<GreenNode>[list.Count]; 934public static GreenNode? CreateList<TFrom>(IReadOnlyList<TFrom> list, Func<TFrom, GreenNode> select) 948var array = new ArrayElement<GreenNode>[list.Count]; 974this.SlotCount <= GreenNode.MaxCachedChildNum; 986var child = GetSlot(i); 996internal bool IsCacheEquivalent(int kind, NodeFlags flags, GreenNode? child1) 1006internal bool IsCacheEquivalent(int kind, NodeFlags flags, GreenNode? child1, GreenNode? child2) 1017internal bool IsCacheEquivalent(int kind, NodeFlags flags, GreenNode? child1, GreenNode? child2, GreenNode? child3) 1038internal GreenNode AddError(DiagnosticInfo err)
Syntax\GreenNode.NodeEnumerable.cs (5)
14public ref struct NodeEnumerable(GreenNode node) 16private readonly GreenNode _node = node; 27private GreenNode _current; 29public Enumerator(GreenNode node) 39public readonly GreenNode Current
Syntax\GreenNodeExtensions.cs (5)
14public static TNode WithAnnotationsGreen<TNode>(this TNode node, IEnumerable<SyntaxAnnotation> annotations) where TNode : GreenNode 44public static TNode WithAdditionalAnnotationsGreen<TNode>(this TNode node, IEnumerable<SyntaxAnnotation>? annotations) where TNode : GreenNode 75public static TNode WithoutAnnotationsGreen<TNode>(this TNode node, IEnumerable<SyntaxAnnotation>? annotations) where TNode : GreenNode 110public static TNode WithDiagnosticsGreen<TNode>(this TNode node, DiagnosticInfo[]? diagnostics) where TNode : GreenNode 115public static TNode WithoutDiagnosticsGreen<TNode>(this TNode node) where TNode : GreenNode
Syntax\InternalSyntax\ChildSyntaxList.cs (5)
9private readonly GreenNode? _node; 12internal ChildSyntaxList(GreenNode node) 45private GreenNode[] Nodes 50var result = new GreenNode[this.Count]; 53foreach (var n in this)
Syntax\InternalSyntax\ChildSyntaxList.Enumerator.cs (7)
11private readonly GreenNode? _node; 13private GreenNode? _list; 15private GreenNode? _currentChild; 17internal Enumerator(GreenNode? node) 53var child = _node.GetSlot(_childIndex); 59if (child.RawKind == GreenNode.ListKind) 89public GreenNode Current
Syntax\InternalSyntax\ChildSyntaxList.Reversed.cs (5)
14private readonly GreenNode? _node; 16internal Reversed(GreenNode? node) 30private GreenNode[] Nodes 35var result = new List<GreenNode>(); 36foreach (var n in this)
Syntax\InternalSyntax\ChildSyntaxList.Reversed.Enumerator.cs (6)
13private readonly GreenNode? _node; 15private GreenNode? _list; 17private GreenNode? _currentChild; 19internal Enumerator(GreenNode? node) 56var child = _node.GetSlot(_childIndex); 91public GreenNode Current
Syntax\InternalSyntax\GreenNodeExtensions.cs (4)
9internal static SyntaxList<T> ToGreenList<T>(this SyntaxNode? node) where T : GreenNode 16internal static SeparatedSyntaxList<T> ToGreenSeparatedList<T>(this SyntaxNode? node) where T : GreenNode 23internal static SyntaxList<T> ToGreenList<T>(this GreenNode? node) where T : GreenNode
Syntax\InternalSyntax\SeparatedSyntaxList.cs (10)
10internal readonly struct SeparatedSyntaxList<TNode> : IEquatable<SeparatedSyntaxList<TNode>> where TNode : GreenNode 12private readonly SyntaxList<GreenNode> _list; 14internal SeparatedSyntaxList(SyntaxList<GreenNode> list) 21private static void Validate(SyntaxList<GreenNode> list) 25var item = list.GetRequiredItem(i); 37internal GreenNode? Node => _list.Node; 68public GreenNode? GetSeparator(int index) 73public SyntaxList<GreenNode> GetWithSeparators() 103public static implicit operator SeparatedSyntaxList<GreenNode>(SeparatedSyntaxList<TNode> list) 105return new SeparatedSyntaxList<GreenNode>(list.GetWithSeparators());
Syntax\InternalSyntax\SeparatedSyntaxListBuilder.cs (4)
12internal readonly struct SeparatedSyntaxListBuilder<TNode> where TNode : GreenNode 47public GreenNode? this[int index] 76public void AddSeparator(GreenNode separatorToken) 106: new SeparatedSyntaxList<TNode>(new SyntaxList<GreenNode>(_builder.ToListNode()));
Syntax\InternalSyntax\SyntaxDiagnosticInfoList.cs (12)
13private readonly GreenNode _node; 15internal SyntaxDiagnosticInfoList(GreenNode node) 41internal readonly GreenNode Node; 45internal NodeIteration(GreenNode node) 58internal Enumerator(GreenNode node) 75var node = _stack[_count - 1].Node; 90var child = node.GetSlot(slotIndex); 108private void PushNodeOrToken(GreenNode node) 120private void PushToken(GreenNode token) 122var trailing = token.GetTrailingTriviaCore(); 129var leading = token.GetLeadingTriviaCore(); 136private void Push(GreenNode node)
Syntax\InternalSyntax\SyntaxList.cs (27)
13: base(GreenNode.ListKind) 18: base(GreenNode.ListKind, diagnostics, annotations) 22internal static GreenNode List(GreenNode child) 27internal static WithTwoChildren List(GreenNode child0, GreenNode child1) 33GreenNode? cached = SyntaxNodeCache.TryGetNode(GreenNode.ListKind, child0, child1, out hash); 46internal static WithThreeChildren List(GreenNode child0, GreenNode child1, GreenNode child2) 53GreenNode? cached = SyntaxNodeCache.TryGetNode(GreenNode.ListKind, child0, child1, child2, out hash); 66internal static GreenNode List(GreenNode?[] nodes) 71internal static GreenNode List(GreenNode?[] nodes, int count) 73var array = new ArrayElement<GreenNode>[count]; 76var node = nodes[i]; 84internal static SyntaxList List(ArrayElement<GreenNode>[] children) 98internal abstract void CopyTo(ArrayElement<GreenNode>[] array, int offset); 100internal static GreenNode? Concat(GreenNode? left, GreenNode? right) 118var tmp = new ArrayElement<GreenNode>[left.SlotCount + right.SlotCount]; 125var tmp = new ArrayElement<GreenNode>[left.SlotCount + 1]; 133var tmp = new ArrayElement<GreenNode>[rightList.SlotCount + 1];
Syntax\InternalSyntax\SyntaxList.WithLotsOfChildren.cs (6)
16internal WithLotsOfChildren(ArrayElement<GreenNode>[] children) 22internal WithLotsOfChildren(DiagnosticInfo[]? diagnostics, SyntaxAnnotation[]? annotations, ArrayElement<GreenNode>[] children, int[] childOffsets) 36/// <param name="offset">The target offset. Must be between 0 and <see cref="GreenNode.FullWidth"/>.</param> 48private static int[] CalculateOffsets(ArrayElement<GreenNode>[] children) 61internal override GreenNode SetDiagnostics(DiagnosticInfo[]? errors) 66internal override GreenNode SetAnnotations(SyntaxAnnotation[]? annotations)
Syntax\InternalSyntax\SyntaxList.WithManyChildren.cs (9)
14internal readonly ArrayElement<GreenNode>[] children; 16internal WithManyChildrenBase(ArrayElement<GreenNode>[] children) 22internal WithManyChildrenBase(DiagnosticInfo[]? diagnostics, SyntaxAnnotation[]? annotations, ArrayElement<GreenNode>[] children) 51internal override GreenNode GetSlot(int index) 56internal override void CopyTo(ArrayElement<GreenNode>[] array, int offset) 95internal WithManyChildren(ArrayElement<GreenNode>[] children) 100internal WithManyChildren(DiagnosticInfo[]? diagnostics, SyntaxAnnotation[]? annotations, ArrayElement<GreenNode>[] children) 105internal override GreenNode SetDiagnostics(DiagnosticInfo[]? errors) 110internal override GreenNode SetAnnotations(SyntaxAnnotation[]? annotations)
Syntax\InternalSyntax\SyntaxList.WithThreeChildren.cs (13)
13private readonly GreenNode _child0; 14private readonly GreenNode _child1; 15private readonly GreenNode _child2; 17internal WithThreeChildren(GreenNode child0, GreenNode child1, GreenNode child2) 28internal WithThreeChildren(DiagnosticInfo[]? diagnostics, SyntaxAnnotation[]? annotations, GreenNode child0, GreenNode child1, GreenNode child2) 40internal override GreenNode? GetSlot(int index) 55internal override void CopyTo(ArrayElement<GreenNode>[] array, int offset) 67internal override GreenNode SetDiagnostics(DiagnosticInfo[]? errors) 72internal override GreenNode SetAnnotations(SyntaxAnnotation[]? annotations)
Syntax\InternalSyntax\SyntaxList.WithTwoChildren.cs (10)
13private readonly GreenNode _child0; 14private readonly GreenNode _child1; 16internal WithTwoChildren(GreenNode child0, GreenNode child1) 25internal WithTwoChildren(DiagnosticInfo[]? diagnostics, SyntaxAnnotation[]? annotations, GreenNode child0, GreenNode child1) 35internal override GreenNode? GetSlot(int index) 48internal override void CopyTo(ArrayElement<GreenNode>[] array, int offset) 59internal override GreenNode SetDiagnostics(DiagnosticInfo[]? errors) 64internal override GreenNode SetAnnotations(SyntaxAnnotation[]? annotations)
Syntax\InternalSyntax\SyntaxList`1.cs (12)
12where TNode : GreenNode 14private readonly GreenNode? _node; 16internal SyntaxList(GreenNode? node) 21internal GreenNode? Node => _node; 64internal GreenNode? ItemUntyped(int index) 67var node = this._node; 113var node = this._node; 128internal void CopyTo(int offset, ArrayElement<GreenNode>[] array, int arrayOffset, int count) 161public SeparatedSyntaxList<TOther> AsSeparatedList<TOther>() where TOther : GreenNode 171public static implicit operator SyntaxList<TNode>(SyntaxList<GreenNode> nodes) 176public static implicit operator SyntaxList<GreenNode>(SyntaxList<TNode> nodes) 178return new SyntaxList<GreenNode>(nodes.Node);
Syntax\InternalSyntax\SyntaxList`1.Enumerator.cs (1)
7internal partial struct SyntaxList<TNode> where TNode : GreenNode
Syntax\InternalSyntax\SyntaxListBuilder.cs (18)
12private ArrayElement<GreenNode?>[] _nodes; 18_nodes = new ArrayElement<GreenNode?>[size]; 32public GreenNode? this[int index] 45public void Add(GreenNode? item) 69public void AddRange(GreenNode[] items) 74public void AddRange(GreenNode[] items, int offset, int length) 98public void AddRange(SyntaxList<GreenNode> list) 103public void AddRange(SyntaxList<GreenNode> list, int offset, int length) 118public void AddRange<TNode>(SyntaxList<TNode> list) where TNode : GreenNode 123public void AddRange<TNode>(SyntaxList<TNode> list, int offset, int length) where TNode : GreenNode 125this.AddRange(new SyntaxList<GreenNode>(list.Node), offset, length); 163public GreenNode[] ToArray() 165var array = new GreenNode[this.Count]; 174internal GreenNode? ToListNode() 187var tmp = new ArrayElement<GreenNode>[this.Count]; 193public SyntaxList<GreenNode> ToList() 195return new SyntaxList<GreenNode>(ToListNode()); 198public SyntaxList<TNode> ToList<TNode>() where TNode : GreenNode
Syntax\InternalSyntax\SyntaxListBuilder`1.cs (4)
9internal readonly struct SyntaxListBuilder<TNode> where TNode : GreenNode 49var result = _builder[index]; 100public GreenNode? ToListNode() 120public SyntaxList<TDerived> ToList<TDerived>() where TDerived : GreenNode
Syntax\InternalSyntax\SyntaxListBuilderExtensions.cs (4)
9public static SyntaxList<GreenNode> ToList(this SyntaxListBuilder? builder) 11return ToList<GreenNode>(builder); 14public static SyntaxList<TNode> ToList<TNode>(this SyntaxListBuilder? builder) where TNode : GreenNode 18return default(SyntaxList<GreenNode>);
Syntax\InternalSyntax\SyntaxListPool.cs (5)
46internal SyntaxListBuilder<TNode> Allocate<TNode>() where TNode : GreenNode 51internal SeparatedSyntaxListBuilder<TNode> AllocateSeparated<TNode>() where TNode : GreenNode 56internal void Free<TNode>(in SeparatedSyntaxListBuilder<TNode> item) where TNode : GreenNode 88where TNode : GreenNode 99where TNode : GreenNode
Syntax\InternalSyntax\SyntaxNodeCache.cs (44)
90internal static void NoteGreen(GreenNode _) 120public readonly GreenNode? node; 122internal Entry(int hash, GreenNode node) 131internal static void AddNode(GreenNode node, int hash) 144private static bool CanBeCached(GreenNode? child1) 149private static bool CanBeCached(GreenNode? child1, GreenNode? child2) 154private static bool CanBeCached(GreenNode? child1, GreenNode? child2, GreenNode? child3) 159private static bool ChildInCache(GreenNode? child) 171private static bool AllChildrenInCache(GreenNode node) 186internal static GreenNode? TryGetNode(int kind, GreenNode? child1, out int hash) 191internal static GreenNode? TryGetNode(int kind, GreenNode? child1, GreenNode.NodeFlags flags, out int hash) 214internal static GreenNode? TryGetNode(int kind, GreenNode? child1, GreenNode? child2, out int hash) 219internal static GreenNode? TryGetNode(int kind, GreenNode? child1, GreenNode? child2, GreenNode.NodeFlags flags, out int hash) 242internal static GreenNode? TryGetNode(int kind, GreenNode? child1, GreenNode? child2, GreenNode? child3, out int hash) 247internal static GreenNode? TryGetNode(int kind, GreenNode? child1, GreenNode? child2, GreenNode? child3, GreenNode.NodeFlags flags, out int hash) 270public static GreenNode.NodeFlags GetDefaultNodeFlags() 272return GreenNode.NodeFlags.IsNotMissing; 275private static int GetCacheHash(int kind, GreenNode.NodeFlags flags, GreenNode? child1) 284private static int GetCacheHash(int kind, GreenNode.NodeFlags flags, GreenNode? child1, GreenNode? child2) 301private static int GetCacheHash(int kind, GreenNode.NodeFlags flags, GreenNode? child1, GreenNode? child2, GreenNode? child3)
Syntax\SeparatedSyntaxList.cs (1)
153var green = node.Green.GetRequiredSlot(index);
Syntax\SyntaxDiffer.cs (2)
25private readonly HashSet<GreenNode> _nodeSimilaritySet = new HashSet<GreenNode>();
Syntax\SyntaxList`1.cs (4)
28static GreenNode createGreenNode(ReadOnlySpan<TNode> nodes) 37var copy = new ArrayElement<GreenNode>[nodes.Length]; 351var newGreen = GreenNode.CreateList(items, static n => n.Green);
Syntax\SyntaxListBuilder.cs (6)
12private ArrayElement<GreenNode?>[] _nodes; 17_nodes = new ArrayElement<GreenNode?>[size]; 30internal void AddInternal(GreenNode item) 150var tmp = new ArrayElement<GreenNode?>[size]; 168internal GreenNode? ToListNode() 181var tmp = new ArrayElement<GreenNode>[this.Count];
Syntax\SyntaxListBuilderExtensions.cs (3)
21var listNode = builder?.ToListNode(); 33var listNode = builder?.ToListNode(); 44var listNode = builder?.ToListNode();
Syntax\SyntaxNode.cs (19)
32internal SyntaxNode(GreenNode green, SyntaxNode? parent, int position) 46internal SyntaxNode(GreenNode green, int position, SyntaxTree syntaxTree) 69internal GreenNode Green { get; } 143var green = this.Green.GetSlot(slot); 161var green = this.Green.GetSlot(0); 178var green = this.Green.GetSlot(slot); 196var green = this.Green.GetSlot(0); 220var green = this.Green.GetRequiredSlot(slot); 240var green = this.Green.GetRequiredSlot(1); 266var greenChild = this.Green.GetRequiredSlot(index); 457var stack = PooledObjects.ArrayBuilder<GreenNode?>.GetInstance(); 464var current = stack.Pop(); 500static bool triviaContainsMatch(GreenNode? triviaNode, int rawKind) 509var child = triviaNode.GetSlot(i); 592var item = this.Green.GetSlot(i); 625var green = this.Green; 634var greenChild = green.GetSlot(index); 653var green = this.Green; 664var greenChild = green.GetSlot(index);
Syntax\SyntaxNodeOrToken.cs (6)
33private readonly GreenNode? _token; 53internal SyntaxNodeOrToken(SyntaxNode? parent, GreenNode? token, int position, int index) 129internal GreenNode? UnderlyingNode => _token ?? _nodeOrParent?.Green; 133internal GreenNode RequiredUnderlyingNode 755var thisUnderlying = this.UnderlyingNode; 756var otherUnderlying = other.UnderlyingNode;
Syntax\SyntaxNodeOrTokenList.cs (6)
93var copy = new ArrayElement<GreenNode>[nodesAndTokens.Length]; 150var green = _node.Green.GetRequiredSlot(index); 278internal void CopyTo(int offset, GreenNode?[] array, int arrayOffset, int count) 353var newGreen = GreenNode.CreateList(items, static n => n.RequiredUnderlyingNode)!; 358new ArrayElement<GreenNode> {Value = newGreen}
Syntax\SyntaxNodeOrTokenListBuilder.cs (6)
13private GreenNode?[] _nodes; 18_nodes = new GreenNode?[size]; 41var innerNode = _nodes[index]; 60internal void Add(GreenNode item) 125var tmp = new GreenNode[size]; 156var tmp = new ArrayElement<GreenNode>[_count];
Syntax\SyntaxToken.cs (8)
29internal SyntaxToken(SyntaxNode? parent, GreenNode? token, int position, int index) 39internal SyntaxToken(GreenNode? token) 78internal GreenNode? Node { get; } 80internal GreenNode RequiredNode 429var leading = Node.GetLeadingTriviaCore(); 436var trailingGreen = Node.GetTrailingTriviaCore(); 480? new SyntaxToken(null, Node.WithLeadingTrivia(GreenNode.CreateList(trivia, static t => t.RequiredUnderlyingNode)), position: 0, index: 0) 506? new SyntaxToken(null, Node.WithTrailingTrivia(GreenNode.CreateList(trivia, static t => t.RequiredUnderlyingNode)), position: 0, index: 0)
Syntax\SyntaxTokenList.cs (12)
29internal SyntaxTokenList(SyntaxNode? parent, GreenNode? tokenOrList, int position, int index) 73private static GreenNode? CreateNodeFromSpan(ReadOnlySpan<SyntaxToken> tokens) 84var copy = new ArrayElement<GreenNode>[tokens.Length]; 93private static GreenNode? CreateNode(IEnumerable<SyntaxToken> tokens) 110internal GreenNode? Node { get; } 256internal void CopyTo(int offset, GreenNode?[] array, int arrayOffset, int count) 269private GreenNode? GetGreenNodeAt(int i) 278private static GreenNode? GetGreenNodeAt(GreenNode node, int i) 375return new SyntaxTokenList(null, GreenNode.CreateList(list, static n => n.RequiredNode), 0, 0); 391return new SyntaxTokenList(null, GreenNode.CreateList(list, static n => n.RequiredNode), 0, 0); 437return new SyntaxTokenList(null, GreenNode.CreateList(list, static n => n.RequiredNode), 0, 0);
Syntax\SyntaxTokenList.Enumerator.cs (2)
52private readonly GreenNode? _singleNodeOrList; 57private GreenNode? _current;
Syntax\SyntaxTokenList.Reversed.cs (2)
75private readonly GreenNode? _singleNodeOrList; 80private GreenNode? _current;
Syntax\SyntaxTokenListBuilder.cs (4)
12private GreenNode?[] _nodes; 17_nodes = new GreenNode?[size]; 40internal void Add(GreenNode item) 84var tmp = new GreenNode[newSize];
Syntax\SyntaxTrivia.cs (4)
27internal SyntaxTrivia(in SyntaxToken token, GreenNode? triviaNode, int position, int index) 57internal GreenNode? UnderlyingNode { get; } 59internal GreenNode RequiredUnderlyingNode 63var node = UnderlyingNode;
Syntax\SyntaxTriviaList.cs (10)
29internal SyntaxTriviaList(in SyntaxToken token, GreenNode? node, int position, int index = 0) 37internal SyntaxTriviaList(in SyntaxToken token, GreenNode? node) 79private static GreenNode? CreateNodeFromSpan(ReadOnlySpan<SyntaxTrivia> trivias) 90var copy = new ArrayElement<GreenNode>[trivias.Length]; 101internal GreenNode? Node { get; } 373return new SyntaxTriviaList(default(SyntaxToken), GreenNode.CreateList(list, static n => n.RequiredUnderlyingNode), 0, 0); 419return new SyntaxTriviaList(default(SyntaxToken), GreenNode.CreateList(list, static n => n.RequiredUnderlyingNode), 0, 0); 451private GreenNode? GetGreenNodeAt(int i) 457private static GreenNode? GetGreenNodeAt(GreenNode node, int i)
Syntax\SyntaxTriviaList.Enumerator.cs (6)
19private GreenNode? _singleNodeOrList; 24private GreenNode? _current; 40private void InitializeFrom(in SyntaxToken token, GreenNode greenNode, int index, int position) 58var node = token.Node.GetLeadingTriviaCore(); 69var leading = token.Node.GetLeadingTriviaCore(); 76var trailingGreen = token.Node.GetTrailingTriviaCore();
Syntax\SyntaxTriviaList.Reversed.cs (2)
74private readonly GreenNode? _singleNodeOrList; 79private GreenNode? _current;
Syntax\SyntaxTriviaListBuilder.cs (1)
155var tmp = new ArrayElement<GreenNode>[_count];
Microsoft.CodeAnalysis.CSharp (271)
Declarations\DeclarationTreeBuilder.cs (4)
36private static readonly ConditionalWeakTable<GreenNode, BoxedMemberNames> s_nodeToMemberNames 37= new ConditionalWeakTable<GreenNode, BoxedMemberNames>(); 1032var greenNode = parent.Green; 1061static (GreenNode _, BoxedMemberNames memberNames) => memberNames, memberNames, out var pooledCallback);
Parser\DirectiveParser.cs (2)
851var leading = identifier.GetLeadingTrivia(); 852var trailing = identifier.GetTrailingTrivia();
Parser\LanguageParser.cs (25)
2006var tmp = members[^1]; 2012GreenNode tmp = openBrace; 2018private void SkipBadMemberListTokens(ref GreenNode previousNode) 3330foreach (var child in node.ChildNodesAndTokens().Reverse()) 4335GreenNode trailingTrivia; 4353GreenNode trailingTrivia; 4372out GreenNode trailingTrivia) 4380GreenNode lastItemTrailingTrivia; 4396out GreenNode trailingTrivia) where TNode : CSharpSyntaxNode 4404GreenNode lastItemTrailingTrivia; 4420out GreenNode trailingTrivia) 4446out GreenNode trailingTrivia) 8872GreenNode trailingTrivia; 8894private PostSkipAction SkipBadStatementListTokens(SyntaxListBuilder<StatementSyntax> statements, SyntaxKind expected, out GreenNode trailingTrivia) 11357var stack = ArrayBuilder<GreenNode>.GetInstance(); 11362var current = stack.Pop(); 11374foreach (var child in current.ChildNodesAndTokens()) 13991internal static bool MatchesFactoryContext(GreenNode green, SyntaxFactoryContext context) 14023LanguageParser parser, ref SyntaxToken openToken, SeparatedSyntaxListBuilder<TNode> builder, SyntaxKind expectedKind, SyntaxKind closeTokenKind) where TNode : GreenNode; 14062bool allowSemicolonAsSeparator) where TNode : GreenNode 14085bool allowSemicolonAsSeparator) where TNode : GreenNode 14267private static bool ContainsErrorDiagnostic(GreenNode node) 14276var stack = ArrayBuilder<GreenNode>.GetInstance(); 14283var current = stack.Pop(); 14293foreach (var child in current.ChildNodesAndTokens())
Parser\LanguageParser_InterpolatedString.cs (5)
319private static SyntaxToken TokenOrMissingToken(GreenNode? leading, SyntaxKind kind, string text, GreenNode? trailing) 377var openTokenTrailingTrivia = tempLexer.LexSyntaxTrailingTrivia().Node; 423var leading = this.CurrentToken.GetLeadingTrivia(); 437SyntaxToken getInterpolationCloseToken(GreenNode? leading)
Parser\Lexer.cs (3)
346var leadingNode = leading?.ToListNode(); 347var trailingNode = trailing?.ToListNode(); 2535var trailing = directiveTriviaCache?.ToListNode();
Parser\SyntaxParser.cs (21)
31private GreenNode _prevTokenTrailingTrivia; 292protected GreenNode EatNode() 298var result = CurrentNode.Green; 723var trivia = _prevTokenTrailingTrivia; 741protected virtual TNode WithAdditionalDiagnostics<TNode>(TNode node, params DiagnosticInfo[] diagnostics) where TNode : GreenNode 758protected TNode AddError<TNode>(TNode node, ErrorCode code) where TNode : GreenNode 763protected TNode AddErrorAsWarning<TNode>(TNode node, ErrorCode code, params object[] args) where TNode : GreenNode 769protected TNode AddError<TNode>(TNode node, ErrorCode code, params object[] args) where TNode : GreenNode 883protected static SyntaxDiagnosticInfo MakeError(GreenNode node, ErrorCode code, params object[] args) 895protected TNode AddLeadingSkippedSyntax<TNode>(TNode node, GreenNode? skippedSyntax) where TNode : CSharpSyntaxNode 907protected void AddTrailingSkippedSyntax(SyntaxListBuilder list, GreenNode skippedSyntax) 912protected void AddTrailingSkippedSyntax<TNode>(SyntaxListBuilder<TNode> list, GreenNode skippedSyntax) where TNode : CSharpSyntaxNode 917protected TNode AddTrailingSkippedSyntax<TNode>(TNode node, GreenNode skippedSyntax) where TNode : CSharpSyntaxNode 936internal SyntaxToken AddSkippedSyntax(SyntaxToken target, GreenNode skippedSyntax, bool trailing) 947foreach (var node in skippedSyntax.EnumerateNodes()) 1000var trivia = builder.ToListNode(); 1006var trailingTrivia = target.GetTrailingTrivia(); 1024var leadingTrivia = target.GetLeadingTrivia(); 1050private bool FindOffset(GreenNode root, CSharpSyntaxNode location, out int offset) 1058var child = root.GetSlot(i); 1140where TNode : GreenNode
Parser\SyntaxParser.ResetPoint.cs (2)
16internal readonly GreenNode PrevTokenTrailingTrivia; 18internal ResetPoint(int resetCount, LexerMode mode, int position, GreenNode prevTokenTrailingTrivia)
SourceGeneration\CSharpSyntaxHelper.cs (1)
61public override void AddAliases(GreenNode node, ArrayBuilder<(string aliasName, string symbolName)> aliases, bool global)
Symbols\Source\SourcePropertySymbol.cs (2)
327static bool containsFieldExpressionInGreenNode(GreenNode? green) 331foreach (var node in green.EnumerateNodes())
Syntax\CSharpSyntaxNode.cs (2)
26internal CSharpSyntaxNode(GreenNode green, SyntaxNode? parent, int position) 35internal CSharpSyntaxNode(GreenNode green, int position, SyntaxTree syntaxTree)
Syntax\CSharpSyntaxRewriter.cs (3)
61var node = token.Node; 68var leadingTrivia = node.GetLeadingTriviaCore(); 69var trailingTrivia = node.GetTrailingTriviaCore();
Syntax\CSharpSyntaxTree.cs (2)
785private IEnumerable<Diagnostic> GetDiagnostics(GreenNode greenNode, int position) 800private IEnumerable<Diagnostic> EnumerateDiagnostics(GreenNode node, int position)
Syntax\InternalSyntax\CSharpSyntaxNode.cs (10)
89var child = this.GetSlot(i); 114public virtual GreenNode GetLeadingTrivia() 119public override GreenNode GetLeadingTriviaCore() 124public virtual GreenNode GetTrailingTrivia() 129public override GreenNode GetTrailingTriviaCore() 143internal static DirectiveStack ApplyDirectives(GreenNode node, DirectiveStack stack) 149var child = node.GetSlot(i); 160internal static DirectiveStack ApplyDirectivesToListOrNode(GreenNode listOrNode, DirectiveStack stack) 165if (listOrNode.RawKind == GreenNode.ListKind) 189private static void GetDirectives(GreenNode node, List<DirectiveTriviaSyntax> directives)
Syntax\InternalSyntax\CSharpSyntaxNodeCache.cs (13)
13internal static GreenNode TryGetNode(int kind, GreenNode child1, SyntaxFactoryContext context, out int hash) 18internal static GreenNode TryGetNode(int kind, GreenNode child1, GreenNode child2, SyntaxFactoryContext context, out int hash) 23internal static GreenNode TryGetNode(int kind, GreenNode child1, GreenNode child2, GreenNode child3, SyntaxFactoryContext context, out int hash) 28private static GreenNode.NodeFlags GetNodeFlags(SyntaxFactoryContext context) 34flags |= GreenNode.NodeFlags.FactoryContextIsInAsync; 39flags |= GreenNode.NodeFlags.FactoryContextIsInQuery; 44flags |= GreenNode.NodeFlags.FactoryContextIsInFieldKeywordContext;
Syntax\InternalSyntax\SyntaxFactory.cs (44)
121internal static SyntaxToken Token(GreenNode leading, SyntaxKind kind, GreenNode trailing) 129internal static SyntaxToken Token(GreenNode leading, SyntaxKind kind, string text, GreenNode trailing) 134internal static SyntaxToken Token(GreenNode leading, SyntaxKind kind, string text, string valueText, GreenNode trailing) 152internal static SyntaxToken MissingToken(GreenNode leading, SyntaxKind kind, GreenNode trailing) 162internal static SyntaxToken Identifier(GreenNode leading, string text, GreenNode trailing) 167internal static SyntaxToken Identifier(SyntaxKind contextualKind, GreenNode leading, string text, string valueText, GreenNode trailing) 172internal static SyntaxToken Literal(GreenNode leading, string text, int value, GreenNode trailing) 177internal static SyntaxToken Literal(GreenNode leading, string text, uint value, GreenNode trailing) 182internal static SyntaxToken Literal(GreenNode leading, string text, long value, GreenNode trailing) 187internal static SyntaxToken Literal(GreenNode leading, string text, ulong value, GreenNode trailing) 192internal static SyntaxToken Literal(GreenNode leading, string text, float value, GreenNode trailing) 197internal static SyntaxToken Literal(GreenNode leading, string text, double value, GreenNode trailing) 202internal static SyntaxToken Literal(GreenNode leading, string text, decimal value, GreenNode trailing) 207internal static SyntaxToken Literal(GreenNode leading, string text, string value, GreenNode trailing) 212internal static SyntaxToken Literal(GreenNode leading, string text, SyntaxKind kind, string value, GreenNode trailing) 217internal static SyntaxToken Literal(GreenNode leading, string text, char value, GreenNode trailing) 222internal static SyntaxToken BadToken(GreenNode leading, string text, GreenNode trailing) 227internal static SyntaxToken XmlTextLiteral(GreenNode leading, string text, string value, GreenNode trailing) 232internal static SyntaxToken XmlTextNewLine(GreenNode leading, string text, string value, GreenNode trailing) 247internal static SyntaxToken XmlEntity(GreenNode leading, string text, string value, GreenNode trailing) 272internal static GreenNode ListNode(CSharpSyntaxNode node0, CSharpSyntaxNode node1) 282internal static GreenNode ListNode(CSharpSyntaxNode node0, CSharpSyntaxNode node1, CSharpSyntaxNode node2) 297internal static GreenNode ListNode(params ArrayElement<GreenNode>[] nodes)
Syntax\InternalSyntax\SyntaxListPoolExtensions.cs (1)
13var listNode = builder.ToListNode();
Syntax\InternalSyntax\SyntaxToken.cs (29)
65internal override GreenNode GetSlot(int index) 85internal static SyntaxToken Create(SyntaxKind kind, GreenNode leading, GreenNode trailing) 135internal static SyntaxToken CreateMissing(SyntaxKind kind, GreenNode leading, GreenNode trailing) 204internal static SyntaxToken Identifier(GreenNode leading, string text, GreenNode trailing) 221internal static SyntaxToken Identifier(SyntaxKind contextualKind, GreenNode leading, string text, string valueText, GreenNode trailing) 236internal static SyntaxToken WithValue<T>(SyntaxKind kind, GreenNode leading, string text, T value, GreenNode trailing) 322var leading = this.GetLeadingTrivia(); 328var trailing = this.GetTrailingTrivia(); 342public sealed override GreenNode WithLeadingTrivia(GreenNode trivia) 347public virtual SyntaxToken TokenWithLeadingTrivia(GreenNode trivia) 352public sealed override GreenNode WithTrailingTrivia(GreenNode trivia) 357public virtual SyntaxToken TokenWithTrailingTrivia(GreenNode trivia) 362internal override GreenNode SetDiagnostics(DiagnosticInfo[] diagnostics) 368internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) 385private static DirectiveStack ApplyDirectivesToTrivia(GreenNode triviaList, DirectiveStack stack) 409var trivia = this.GetLeadingTrivia(); 420var trivia = this.GetTrailingTrivia(); 428public override bool IsEquivalentTo(GreenNode other) 442var thisLeading = this.GetLeadingTrivia(); 443var otherLeading = otherToken.GetLeadingTrivia(); 457var thisTrailing = this.GetTrailingTrivia(); 458var otherTrailing = otherToken.GetTrailingTrivia();
Syntax\InternalSyntax\SyntaxToken.MissingTokenWithTrivia.cs (8)
16internal MissingTokenWithTrivia(SyntaxKind kind, GreenNode leading, GreenNode trailing) 22internal MissingTokenWithTrivia(SyntaxKind kind, GreenNode leading, GreenNode trailing, DiagnosticInfo[] diagnostics, SyntaxAnnotation[] annotations) 47public override SyntaxToken TokenWithLeadingTrivia(GreenNode trivia) 52public override SyntaxToken TokenWithTrailingTrivia(GreenNode trivia) 57internal override GreenNode SetDiagnostics(DiagnosticInfo[] diagnostics) 62internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations)
Syntax\InternalSyntax\SyntaxToken.SyntaxIdentifier.cs (4)
44public override SyntaxToken TokenWithLeadingTrivia(GreenNode trivia) 49public override SyntaxToken TokenWithTrailingTrivia(GreenNode trivia) 54internal override GreenNode SetDiagnostics(DiagnosticInfo[] diagnostics) 59internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations)
Syntax\InternalSyntax\SyntaxToken.SyntaxIdentifierExtended.cs (4)
47public override SyntaxToken TokenWithLeadingTrivia(GreenNode trivia) 52public override SyntaxToken TokenWithTrailingTrivia(GreenNode trivia) 57internal override GreenNode SetDiagnostics(DiagnosticInfo[] diagnostics) 62internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations)
Syntax\InternalSyntax\SyntaxToken.SyntaxIdentifierWithTrailingTrivia.cs (8)
13private readonly GreenNode _trailing; 15internal SyntaxIdentifierWithTrailingTrivia(string text, GreenNode trailing) 25internal SyntaxIdentifierWithTrailingTrivia(string text, GreenNode trailing, DiagnosticInfo[] diagnostics, SyntaxAnnotation[] annotations) 35public override GreenNode GetTrailingTrivia() 40public override SyntaxToken TokenWithLeadingTrivia(GreenNode trivia) 45public override SyntaxToken TokenWithTrailingTrivia(GreenNode trivia) 50internal override GreenNode SetDiagnostics(DiagnosticInfo[] diagnostics) 55internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations)
Syntax\InternalSyntax\SyntaxToken.SyntaxIdentifierWithTrivia.cs (12)
13private readonly GreenNode _leading; 14private readonly GreenNode _trailing; 20GreenNode leading, 21GreenNode trailing) 40GreenNode leading, 41GreenNode trailing, 58public override GreenNode GetLeadingTrivia() 63public override GreenNode GetTrailingTrivia() 68public override SyntaxToken TokenWithLeadingTrivia(GreenNode trivia) 73public override SyntaxToken TokenWithTrailingTrivia(GreenNode trivia) 78internal override GreenNode SetDiagnostics(DiagnosticInfo[] diagnostics) 83internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations)
Syntax\InternalSyntax\SyntaxToken.SyntaxLiteral.cs (4)
57public override SyntaxToken TokenWithLeadingTrivia(GreenNode trivia) 62public override SyntaxToken TokenWithTrailingTrivia(GreenNode trivia) 67internal override GreenNode SetDiagnostics(DiagnosticInfo[] diagnostics) 72internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations)
Syntax\InternalSyntax\SyntaxToken.SyntaxLiteralWithTrivia.cs (12)
13private readonly GreenNode _leading; 14private readonly GreenNode _trailing; 16internal SyntaxTokenWithValueAndTrivia(SyntaxKind kind, string text, T value, GreenNode leading, GreenNode trailing) 35GreenNode leading, 36GreenNode trailing, 53public override GreenNode GetLeadingTrivia() 58public override GreenNode GetTrailingTrivia() 63public override SyntaxToken TokenWithLeadingTrivia(GreenNode trivia) 68public override SyntaxToken TokenWithTrailingTrivia(GreenNode trivia) 73internal override GreenNode SetDiagnostics(DiagnosticInfo[] diagnostics) 78internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations)
Syntax\InternalSyntax\SyntaxToken.SyntaxTokenWithTrivia.cs (12)
13protected readonly GreenNode LeadingField; 14protected readonly GreenNode TrailingField; 16internal SyntaxTokenWithTrivia(SyntaxKind kind, GreenNode leading, GreenNode trailing) 31internal SyntaxTokenWithTrivia(SyntaxKind kind, GreenNode leading, GreenNode trailing, DiagnosticInfo[] diagnostics, SyntaxAnnotation[] annotations) 46public override GreenNode GetLeadingTrivia() 51public override GreenNode GetTrailingTrivia() 56public override SyntaxToken TokenWithLeadingTrivia(GreenNode trivia) 61public override SyntaxToken TokenWithTrailingTrivia(GreenNode trivia) 66internal override GreenNode SetDiagnostics(DiagnosticInfo[] diagnostics) 71internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations)
Syntax\InternalSyntax\SyntaxTrivia.cs (4)
41internal override GreenNode GetSlot(int index) 65internal override GreenNode SetDiagnostics(DiagnosticInfo[]? diagnostics) 70internal override GreenNode SetAnnotations(SyntaxAnnotation[]? annotations) 95public override bool IsEquivalentTo(GreenNode? other)
Syntax\StructuredTriviaSyntax.cs (1)
24var node = trivia.UnderlyingNode;
Syntax\SyntaxEquivalence.cs (20)
16private static readonly ObjectPool<Stack<(GreenNode? before, GreenNode? after)>> s_equivalenceCheckStack = 17new ObjectPool<Stack<(GreenNode?, GreenNode?)>>(() => new Stack<(GreenNode?, GreenNode?)>()); 56private static bool AreTokensEquivalent(GreenNode? before, GreenNode? after, Func<SyntaxKind, bool>? ignoreChildNode) 105private static bool AreEquivalentRecursive(GreenNode? before, GreenNode? after, Func<SyntaxKind, bool>? ignoreChildNode, bool topLevel) 128bool areEquivalentSingleLevel(GreenNode? before, GreenNode? after) 197GreenNode? child1 = null; 198GreenNode? child2 = null; 203var c = e1.Current; 213var c = e2.Current; 243var child1 = before.GetSlot(i); 244var child2 = after.GetSlot(i); 254private static bool AreNullableDirectivesEquivalent(GreenNode before, GreenNode after, Func<SyntaxKind, bool>? ignoreChildNode)
Syntax\SyntaxFacts.cs (3)
577var stack = ArrayBuilder<GreenNode>.GetInstance(); 582var current = stack.Pop(); 601foreach (var child in current.ChildNodesAndTokens())
Syntax\SyntaxKind.cs (1)
12List = GreenNode.ListKind,
Syntax\SyntaxTreeDiagnosticEnumerator.cs (9)
22internal SyntaxTreeDiagnosticEnumerator(SyntaxTree syntaxTree, GreenNode? node, int position) 49var node = _stack.Top.Node; 77var child = node.GetSlot(slotIndex); 116internal readonly GreenNode Node; 120internal NodeIteration(GreenNode node) 140internal void PushNodeOrToken(GreenNode node) 155var trailing = token.GetTrailingTrivia(); 162var leading = token.GetLeadingTrivia(); 169private void Push(GreenNode node)
Microsoft.CodeAnalysis.CSharp.Syntax.UnitTests (12)
IncrementalParsing\IncrementalParsingTests.cs (3)
3469Func<SyntaxTree, GreenNode> extractGreenClassC = tree => 3493var oldClassC = extractGreenClassC(oldTree); 3494var newClassC = extractGreenClassC(newTree);
IncrementalParsing\SyntaxDifferences.cs (3)
25var hashSet = new HashSet<GreenNode>(); 33private static void GetRebuiltNodes(SyntaxNodeOrToken newNode, HashSet<GreenNode> hashSet, ArrayBuilder<SyntaxNodeOrToken> nodes) 48private static void GatherNodes(SyntaxNodeOrToken node, HashSet<GreenNode> hashSet)
Parsing\SyntaxExtensions.cs (2)
104private static ImmutableArray<DiagnosticInfo> ErrorsOrWarnings(this GreenNode node, bool errorsOnly) 119private static ImmutableArray<DiagnosticInfo> ErrorsAndWarnings(this GreenNode node)
Syntax\GreenNodeTests.cs (1)
17var nodeWithDiags = node.SetDiagnostics(new DiagnosticInfo[] { new CSDiagnosticInfo(ErrorCode.ERR_NoBaseClass) });
Syntax\SyntaxFactoryTests.cs (1)
197var actualGreen = actualRed.Node;
Syntax\SyntaxNodeCacheTests.cs (2)
48var listOf1 = SyntaxNodeCache.TryGetNode(listOf2.RawKind, child0, SyntaxNodeCache.GetDefaultNodeFlags(), out _); 73var listOf2 = SyntaxNodeCache.TryGetNode(listOf3.RawKind, child0, child1, SyntaxNodeCache.GetDefaultNodeFlags(), out _);