Vixen
02b45cc4
csharp
public readonly struct SyntaxList<TNode> where TNode : SyntaxNode

A typed view over a run of sibling nodes. Backed either by an anonymous list node or, when there is exactly one element, by that element directly — so a one-item list costs no extra allocation.

No guide page documents this yet — the page shows what the code says about itself.

Fields and properties (2)

  • public int Count

    Number of elements. Zero when the list is empty.

  • public TNode? this[int index]

    The element at , or null when the list is empty.

Methods (10)

  • public bool Any()

    Whether the list has any elements.

  • public bool Any(int rawKind)

    Whether any element has this kind. Takes the raw value because the tree is language-agnostic; callers pass (int)SyntaxKind.Xxx.

  • public SyntaxList<TNode>.Enumerator GetEnumerator()

    Allocation-free enumerator over the elements.

  • public static bool operator ==(SyntaxList<TNode> left, SyntaxList<TNode> right)

    Reference equality on the backing node. Two lists are equal when they are the same list, not when they happen to hold equal elements.

  • public static bool operator !=(SyntaxList<TNode> left, SyntaxList<TNode> right)
  • public bool Equals(SyntaxList<TNode> other)

    Indicates whether the current object is equal to another object of the same type.

  • public override bool Equals(object? obj)

    Indicates whether this instance and a specified object are equal.

  • public override int GetHashCode()

    Hashes the backing node, consistent with the reference equality above.

  • public static implicit operator SyntaxList<TNode>(TNode node)

    Wraps a single node as a one-element list.

  • public SyntaxList<TNode> AddRange(IEnumerable<TNode> nodes)

    Returns a new list with appended.

Used by (57, showing 40)

  • BinderVixen.Ui.Markup
  • DocumentSyntaxVixen.Ui.Markup
  • ElementSyntaxVixen.Ui.Markup
  • EnumeratorVixen.Core.Syntax
  • MarkupBlockSyntaxVixen.Ui.Markup
  • QuotedAttributeValueSyntaxVixen.Ui.Markup
  • StartTagSyntaxVixen.Ui.Markup
  • SwitchSectionSyntaxVixen.Ui.Markup
  • SwitchSyntaxVixen.Ui.Markup
  • SyntaxFactoryVixen.Ui.Markup
  • SyntaxRewriterVixen.Ui.Markup
  • VxmlVixen.Ui.Markup.Tests
  • VxmlParserVixen.Ui.Markup
  • AccessorDeclarationSyntaxVixen.Raven
  • AccessorListSyntaxVixen.Raven
  • ArrayRankSpecifierSyntaxVixen.Raven
  • ArrayTypeSyntaxVixen.Raven
  • BinderVixen.Raven
  • BlockSyntaxVixen.Raven
  • BreakStatementSyntaxVixen.Raven
  • CompilationUnitSyntaxVixen.Raven
  • ConstraintResolutionVixen.Raven
  • ConstructorDeclarationSyntaxVixen.Raven
  • ContinueStatementSyntaxVixen.Raven
  • DeclarationFactsVixen.Raven
  • DiscardStatementSyntaxVixen.Raven
  • EmptyStatementSyntaxVixen.Raven
  • EnumDeclarationSyntaxVixen.Raven
  • EnumMemberDeclarationSyntaxVixen.Raven
  • ExpressionStatementSyntaxVixen.Raven
  • FieldDeclarationSyntaxVixen.Raven
  • ForStatementSyntaxVixen.Raven
  • IfStatementSyntaxVixen.Raven
  • LocalDeclarationStatementSyntaxVixen.Raven
  • MemberDeclarationSyntaxVixen.Raven
  • MethodDeclarationSyntaxVixen.Raven
  • OperatorDeclarationSyntaxVixen.Raven
  • ParameterSyntaxVixen.Raven
  • ParserTestsVixen.Raven.Tests
  • PropertyDeclarationSyntaxVixen.Raven