Files
PURErat-crack-scode/decompiled/Libraries/microsoft.codeanalysis.csharp/Microsoft.CodeAnalysis.CSharp.Syntax/AttributeArgumentSyntax.cs
T
2026-08-27 10:56:38 -06:00

86 lines
2.5 KiB
C#

using Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax;
namespace Microsoft.CodeAnalysis.CSharp.Syntax;
public sealed class AttributeArgumentSyntax : CSharpSyntaxNode
{
private NameEqualsSyntax? nameEquals;
private NameColonSyntax? nameColon;
private ExpressionSyntax? expression;
public NameEqualsSyntax? NameEquals => ((SyntaxNode)this).GetRedAtZero<NameEqualsSyntax>(ref nameEquals);
public NameColonSyntax? NameColon => ((SyntaxNode)this).GetRed<NameColonSyntax>(ref nameColon, 1);
public ExpressionSyntax Expression => ((SyntaxNode)this).GetRed<ExpressionSyntax>(ref expression, 2);
internal AttributeArgumentSyntax(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode green, SyntaxNode? parent, int position)
: base((GreenNode)(object)green, parent, position)
{
}
internal override SyntaxNode? GetNodeSlot(int index)
{
return (SyntaxNode?)(index switch
{
0 => ((SyntaxNode)this).GetRedAtZero<NameEqualsSyntax>(ref nameEquals),
1 => ((SyntaxNode)this).GetRed<NameColonSyntax>(ref nameColon, 1),
2 => ((SyntaxNode)this).GetRed<ExpressionSyntax>(ref expression, 2),
_ => null,
});
}
internal override SyntaxNode? GetCachedSlot(int index)
{
return (SyntaxNode?)(index switch
{
0 => nameEquals,
1 => nameColon,
2 => expression,
_ => null,
});
}
public override void Accept(CSharpSyntaxVisitor visitor)
{
visitor.VisitAttributeArgument(this);
}
public override TResult? Accept<TResult>(CSharpSyntaxVisitor<TResult> visitor)
{
return visitor.VisitAttributeArgument(this);
}
public AttributeArgumentSyntax Update(NameEqualsSyntax? nameEquals, NameColonSyntax? nameColon, ExpressionSyntax expression)
{
if (nameEquals != NameEquals || nameColon != NameColon || expression != Expression)
{
AttributeArgumentSyntax attributeArgumentSyntax = SyntaxFactory.AttributeArgument(nameEquals, nameColon, expression);
SyntaxAnnotation[] annotations = ((SyntaxNode)this).GetAnnotations();
if (annotations == null || annotations.Length == 0)
{
return attributeArgumentSyntax;
}
return attributeArgumentSyntax.WithAnnotations(annotations);
}
return this;
}
public AttributeArgumentSyntax WithNameEquals(NameEqualsSyntax? nameEquals)
{
return Update(nameEquals, NameColon, Expression);
}
public AttributeArgumentSyntax WithNameColon(NameColonSyntax? nameColon)
{
return Update(NameEquals, nameColon, Expression);
}
public AttributeArgumentSyntax WithExpression(ExpressionSyntax expression)
{
return Update(NameEquals, NameColon, expression);
}
}