using System.Collections.Generic; using Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax; namespace Microsoft.CodeAnalysis.CSharp.Syntax; public sealed class NameMemberCrefSyntax : MemberCrefSyntax { private TypeSyntax? name; private CrefParameterListSyntax? parameters; public TypeSyntax Name => ((SyntaxNode)this).GetRedAtZero(ref name); public CrefParameterListSyntax? Parameters => ((SyntaxNode)this).GetRed(ref parameters, 1); internal NameMemberCrefSyntax(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode green, SyntaxNode? parent, int position) : base(green, parent, position) { } internal override SyntaxNode? GetNodeSlot(int index) { return (SyntaxNode?)(index switch { 0 => ((SyntaxNode)this).GetRedAtZero(ref name), 1 => ((SyntaxNode)this).GetRed(ref parameters, 1), _ => null, }); } internal override SyntaxNode? GetCachedSlot(int index) { return (SyntaxNode?)(index switch { 0 => name, 1 => parameters, _ => null, }); } public override void Accept(CSharpSyntaxVisitor visitor) { visitor.VisitNameMemberCref(this); } public override TResult? Accept(CSharpSyntaxVisitor visitor) { return visitor.VisitNameMemberCref(this); } public NameMemberCrefSyntax Update(TypeSyntax name, CrefParameterListSyntax? parameters) { if (name != Name || parameters != Parameters) { NameMemberCrefSyntax nameMemberCrefSyntax = SyntaxFactory.NameMemberCref(name, parameters); SyntaxAnnotation[] annotations = ((SyntaxNode)this).GetAnnotations(); if (annotations == null || annotations.Length == 0) { return nameMemberCrefSyntax; } return nameMemberCrefSyntax.WithAnnotations(annotations); } return this; } public NameMemberCrefSyntax WithName(TypeSyntax name) { return Update(name, Parameters); } public NameMemberCrefSyntax WithParameters(CrefParameterListSyntax? parameters) { return Update(Name, parameters); } public NameMemberCrefSyntax AddParametersParameters(params CrefParameterSyntax[] items) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) CrefParameterListSyntax crefParameterListSyntax = Parameters ?? SyntaxFactory.CrefParameterList(); return WithParameters(crefParameterListSyntax.WithParameters(crefParameterListSyntax.Parameters.AddRange((IEnumerable)items))); } }