Files

52 lines
1.6 KiB
C#
Raw Permalink Normal View History

2026-08-27 10:56:38 -06:00
using System;
using System.Threading;
namespace Microsoft.CodeAnalysis.FlowAnalysis;
public static class ControlFlowGraphExtensions
{
public static ControlFlowGraph GetLocalFunctionControlFlowGraphInScope(this ControlFlowGraph controlFlowGraph, IMethodSymbol localFunction, CancellationToken cancellationToken = default(CancellationToken))
{
if (controlFlowGraph == null)
{
throw new ArgumentNullException("controlFlowGraph");
}
if (localFunction == null)
{
throw new ArgumentNullException("localFunction");
}
ControlFlowGraph controlFlowGraph2 = controlFlowGraph;
do
{
if (controlFlowGraph2.TryGetLocalFunctionControlFlowGraph(localFunction, out ControlFlowGraph controlFlowGraph3))
{
return controlFlowGraph3;
}
}
while ((controlFlowGraph2 = controlFlowGraph2.Parent) != null);
throw new ArgumentOutOfRangeException("localFunction");
}
public static ControlFlowGraph GetAnonymousFunctionControlFlowGraphInScope(this ControlFlowGraph controlFlowGraph, IFlowAnonymousFunctionOperation anonymousFunction, CancellationToken cancellationToken = default(CancellationToken))
{
if (controlFlowGraph == null)
{
throw new ArgumentNullException("controlFlowGraph");
}
if (anonymousFunction == null)
{
throw new ArgumentNullException("anonymousFunction");
}
ControlFlowGraph controlFlowGraph2 = controlFlowGraph;
do
{
if (controlFlowGraph2.TryGetAnonymousFunctionControlFlowGraph(anonymousFunction, out ControlFlowGraph controlFlowGraph3))
{
return controlFlowGraph3;
}
}
while ((controlFlowGraph2 = controlFlowGraph2.Parent) != null);
throw new ArgumentOutOfRangeException("anonymousFunction");
}
}