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

39 lines
1.3 KiB
C#

using System.Diagnostics;
using Microsoft.CodeAnalysis.CSharp.Symbols;
namespace Microsoft.CodeAnalysis.CSharp;
internal sealed class BoundPropertySubpatternMember : BoundNode
{
public BoundPropertySubpatternMember? Receiver { get; }
public Symbol? Symbol { get; }
public TypeSymbol Type { get; }
public BoundPropertySubpatternMember(SyntaxNode syntax, BoundPropertySubpatternMember? receiver, Symbol? symbol, TypeSymbol type, bool hasErrors = false)
: base(BoundKind.PropertySubpatternMember, syntax, hasErrors || receiver.HasErrors())
{
Receiver = receiver;
Symbol = symbol;
Type = type;
}
[DebuggerStepThrough]
public override BoundNode? Accept(BoundTreeVisitor visitor)
{
return visitor.VisitPropertySubpatternMember(this);
}
public BoundPropertySubpatternMember Update(BoundPropertySubpatternMember? receiver, Symbol? symbol, TypeSymbol type)
{
if (receiver != Receiver || !SymbolEqualityComparer.ConsiderEverything.Equals(symbol, Symbol) || !TypeSymbol.Equals(type, Type, (TypeCompareKind)0))
{
BoundPropertySubpatternMember boundPropertySubpatternMember = new BoundPropertySubpatternMember(Syntax, receiver, symbol, type, base.HasErrors);
boundPropertySubpatternMember.CopyAttributes(this);
return boundPropertySubpatternMember;
}
return this;
}
}