32 lines
904 B
C#
32 lines
904 B
C#
using System.Diagnostics;
|
|||
|
|
|
||
|
|
namespace Microsoft.CodeAnalysis.CSharp;
|
||
|
|
|
||
|
|
internal sealed class BoundExtractedFinallyBlock : BoundStatement
|
||
|
|
{
|
||
|
|
public BoundBlock FinallyBlock { get; }
|
||
|
|
|
||
|
|
public BoundExtractedFinallyBlock(SyntaxNode syntax, BoundBlock finallyBlock, bool hasErrors = false)
|
||
|
|
: base(BoundKind.ExtractedFinallyBlock, syntax, hasErrors || finallyBlock.HasErrors())
|
||
|
|
{
|
||
|
|
FinallyBlock = finallyBlock;
|
||
|
|
}
|
||
|
|
|
||
|
|
[DebuggerStepThrough]
|
||
|
|
public override BoundNode? Accept(BoundTreeVisitor visitor)
|
||
|
|
{
|
||
|
|
return visitor.VisitExtractedFinallyBlock(this);
|
||
|
|
}
|
||
|
|
|
||
|
|
public BoundExtractedFinallyBlock Update(BoundBlock finallyBlock)
|
||
|
|
{
|
||
|
|
if (finallyBlock != FinallyBlock)
|
||
|
|
{
|
||
|
|
BoundExtractedFinallyBlock boundExtractedFinallyBlock = new BoundExtractedFinallyBlock(Syntax, finallyBlock, base.HasErrors);
|
||
|
|
boundExtractedFinallyBlock.CopyAttributes(this);
|
||
|
|
return boundExtractedFinallyBlock;
|
||
|
|
}
|
||
|
|
return this;
|
||
|
|
}
|
||
|
|
}
|