Files
2026-08-27 10:56:38 -06:00

33 lines
1016 B
C#

using System.Diagnostics;
using Microsoft.CodeAnalysis.CSharp.Symbols;
namespace Microsoft.CodeAnalysis.CSharp;
internal sealed class BoundPositionalSubpattern : BoundSubpattern
{
public Symbol? Symbol { get; }
public BoundPositionalSubpattern(SyntaxNode syntax, Symbol? symbol, BoundPattern pattern, bool hasErrors = false)
: base(BoundKind.PositionalSubpattern, syntax, pattern, hasErrors || pattern.HasErrors())
{
Symbol = symbol;
}
[DebuggerStepThrough]
public override BoundNode? Accept(BoundTreeVisitor visitor)
{
return visitor.VisitPositionalSubpattern(this);
}
public BoundPositionalSubpattern Update(Symbol? symbol, BoundPattern pattern)
{
if (!SymbolEqualityComparer.ConsiderEverything.Equals(symbol, Symbol) || pattern != base.Pattern)
{
BoundPositionalSubpattern boundPositionalSubpattern = new BoundPositionalSubpattern(Syntax, symbol, pattern, base.HasErrors);
boundPositionalSubpattern.CopyAttributes(this);
return boundPositionalSubpattern;
}
return this;
}
}