1 implementation of IBlockOperation
Microsoft.CodeAnalysis (1)
Generated\Operations.Generated.cs (1)
3626internal sealed partial class BlockOperation : Operation, IBlockOperation
166 references to IBlockOperation
Microsoft.CodeAnalysis (37)
Generated\OperationKind.Generated.cs (1)
21/// <summary>Indicates an <see cref="IBlockOperation"/>.</summary>
Generated\Operations.Generated.cs (32)
448IBlockOperation Body { get; } 456IBlockOperation? Finally { get; } 548IBlockOperation? Body { get; } 555IBlockOperation? IgnoredBody { get; } 1165IBlockOperation Body { get; } 2424IBlockOperation Handler { get; } 2776IBlockOperation? BlockBody { get; } 2780IBlockOperation? ExpressionBody { get; } 3203/// Represents using variable declaration, with scope spanning across the parent <see cref="IBlockOperation" />. 4347internal TryOperation(IBlockOperation body, ImmutableArray<ICatchClauseOperation> catches, IBlockOperation? @finally, ILabelSymbol? exitLabel, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 4355public IBlockOperation Body { get; } 4357public IBlockOperation? Finally { get; } 4545internal LocalFunctionOperation(IMethodSymbol symbol, IBlockOperation? body, IBlockOperation? ignoredBody, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 4553public IBlockOperation? Body { get; } 4554public IBlockOperation? IgnoredBody { get; } 5491internal AnonymousFunctionOperation(IMethodSymbol symbol, IBlockOperation body, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 5498public IBlockOperation Body { get; } 7602internal CatchClauseOperation(IOperation? exceptionDeclarationOrExpression, ITypeSymbol exceptionType, ImmutableArray<ILocalSymbol> locals, IOperation? filter, IBlockOperation handler, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 7615public IBlockOperation Handler { get; } 8284protected BaseMethodBodyBaseOperation(IBlockOperation? blockBody, IBlockOperation? expressionBody, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 8290public IBlockOperation? BlockBody { get; } 8291public IBlockOperation? ExpressionBody { get; } 8295internal MethodBodyOperation(IBlockOperation? blockBody, IBlockOperation? expressionBody, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 8351internal ConstructorBodyOperation(ImmutableArray<ILocalSymbol> locals, IOperation? initializer, IBlockOperation? blockBody, IBlockOperation? expressionBody, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 10246public override IOperation VisitBlock(IBlockOperation operation, object? argument) 10851public virtual void VisitBlock(IBlockOperation operation) => DefaultVisit(operation); 10987public virtual TResult? VisitBlock(IBlockOperation operation, TArgument argument) => DefaultVisit(operation, argument);
Operations\ControlFlowGraph.cs (1)
105public static ControlFlowGraph Create(Operations.IBlockOperation body, CancellationToken cancellationToken = default)
Operations\ControlFlowGraphBuilder.cs (3)
1383public override IOperation? VisitBlock(IBlockOperation operation, int? captureIdForResult) 1511private void VisitMethodBodies(IBlockOperation? blockBody, IBlockOperation? expressionBody)
Microsoft.CodeAnalysis.CodeStyle (9)
AbstractUseThrowExpressionDiagnosticAnalyzer.cs (4)
103if (ifOperation.Parent is not IBlockOperation containingBlock) 138private static bool ValueIsAccessed(SemanticModel semanticModel, IConditionalOperation ifOperation, IBlockOperation containingBlock, ISymbol localOrParameter, IExpressionStatementOperation expressionStatement, IAssignmentOperation assignmentExpression) 169IBlockOperation containingBlock, IConditionalOperation ifOperation, ISymbol localOrParameter, 277if (containingOperation is IBlockOperation block)
HashCodeAnalyzer.cs (2)
60if (operation is not IBlockOperation blockOperation) 77while (blockOperation.Operations is [IBlockOperation childBlock])
OperationExtensions.cs (1)
400if (firstBlock is not IBlockOperation block)
UseConditionalExpressionForReturnHelpers.cs (1)
49if (ifOperation.Parent is not IBlockOperation parentBlock)
UseConditionalExpressionHelpers.cs (1)
60=> statement is IBlockOperation block && block.Operations.Length == 1
Microsoft.CodeAnalysis.CodeStyle.Fixes (1)
AbstractUseConditionalExpressionForAssignmentCodeFixProvider.cs (1)
189if (ifOperation.Parent is not IBlockOperation parentBlock)
Microsoft.CodeAnalysis.CSharp (17)
Operations\CSharpOperationFactory.cs (17)
351(IBlockOperation?)Create(boundNode.BlockBody), 352(IBlockOperation?)Create(boundNode.ExpressionBody), 363(IBlockOperation?)Create(boundNode.BlockBody), 364(IBlockOperation?)Create(boundNode.ExpressionBody), 991IBlockOperation body = (IBlockOperation)Create(boundLambda.Body); 999IBlockOperation? body = (IBlockOperation?)Create(boundLocalFunctionStatement.Body); 1000IBlockOperation? ignoredBody = boundLocalFunctionStatement is { BlockBody: { }, ExpressionBody: { } exprBody } 1001? (IBlockOperation?)Create(exprBody) 1673private IBlockOperation CreateBoundBlockOperation(BoundBlock boundBlock) 1886var body = (IBlockOperation)Create(boundTryStatement.TryBlock); 1888var @finally = (IBlockOperation?)Create(boundTryStatement.FinallyBlockOpt); 1900IBlockOperation handler = (IBlockOperation)Create(boundCatchBlock.Body);
Microsoft.CodeAnalysis.CSharp.CodeStyle (3)
CSharpMakeStructMemberReadOnlyAnalyzer.cs (1)
89if (blockOperation is IBlockOperation { Operations: [IThrowOperation or IExpressionStatementOperation { Operation: IThrowOperation }] })
CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (1)
83=> expressionStatementOperation.Parent is IBlockOperation blockOperation &&
UseSimpleUsingStatementDiagnosticAnalyzer.cs (1)
145if (innerUsingOperation.Body is IBlockOperation innerUsingBlock)
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (9)
ConvertToRecordHelpers.cs (8)
38GetBlockOfMethodBody(methodBodyOperation) is IBlockOperation 114return GetBlockOfMethodBody(operation) is IBlockOperation 133if (GetBlockOfMethodBody(operation) is not IBlockOperation 421var body = GetBlockOfMethodBody(constructorOperation); 497var body = GetBlockOfMethodBody(operation); 1063var trueOps = ((whenTrue as IBlockOperation)?.Operations ?? ImmutableArray.Create(whenTrue)) 1065var falseOps = ((whenFalse as IBlockOperation)?.Operations ?? 1120private static IBlockOperation? GetBlockOfMethodBody(IMethodBodyBaseOperation body)
NullableHelpers.cs (1)
31while (rootOperation is not IBlockOperation &&
Microsoft.CodeAnalysis.CSharp.Features (16)
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.Rewriting.cs (1)
64IBlockOperation op => AsExpressionSyntax(op.Operations.Single()),
ConvertToRecordHelpers.cs (8)
38GetBlockOfMethodBody(methodBodyOperation) is IBlockOperation 114return GetBlockOfMethodBody(operation) is IBlockOperation 133if (GetBlockOfMethodBody(operation) is not IBlockOperation 421var body = GetBlockOfMethodBody(constructorOperation); 497var body = GetBlockOfMethodBody(operation); 1063var trueOps = ((whenTrue as IBlockOperation)?.Operations ?? ImmutableArray.Create(whenTrue)) 1065var falseOps = ((whenFalse as IBlockOperation)?.Operations ?? 1120private static IBlockOperation? GetBlockOfMethodBody(IMethodBodyBaseOperation body)
CSharpMakeStructMemberReadOnlyAnalyzer.cs (1)
89if (blockOperation is IBlockOperation { Operations: [IThrowOperation or IExpressionStatementOperation { Operation: IThrowOperation }] })
CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (1)
83=> expressionStatementOperation.Parent is IBlockOperation blockOperation &&
InitializeParameter\CSharpInitializeMemberFromParameterCodeRefactoringProvider.cs (3)
38protected override SyntaxNode? TryGetLastStatement(IBlockOperation? blockStatement) 110IBlockOperation? blockStatement, 169private static IEnumerable<(ITupleOperation targetTuple, ITupleOperation valueTuple)> TryGetAssignmentExpressions(IBlockOperation blockOperation)
InitializeParameter\InitializeParameterHelpers.cs (1)
47public static SyntaxNode? TryGetLastStatement(IBlockOperation? blockStatement)
UseSimpleUsingStatementDiagnosticAnalyzer.cs (1)
145if (innerUsingOperation.Body is IBlockOperation innerUsingBlock)
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (3)
Semantics\TopLevelStatementsTests.cs (3)
204Assert.NotNull(ControlFlowGraph.Create((IMethodBodyOperation)((IBlockOperation)operation1.Parent.Parent).Parent)); 332Assert.NotNull(ControlFlowGraph.Create((IMethodBodyOperation)((IBlockOperation)operation1.Parent.Parent).Parent)); 370Assert.NotNull(ControlFlowGraph.Create((IMethodBodyOperation)((IBlockOperation)operation2.Parent).Parent));
Microsoft.CodeAnalysis.CSharp.Workspaces (1)
NullableHelpers.cs (1)
31while (rootOperation is not IBlockOperation &&
Microsoft.CodeAnalysis.Features (49)
AbstractUseConditionalExpressionForAssignmentCodeFixProvider.cs (1)
189if (ifOperation.Parent is not IBlockOperation parentBlock)
AbstractUseThrowExpressionDiagnosticAnalyzer.cs (4)
103if (ifOperation.Parent is not IBlockOperation containingBlock) 138private static bool ValueIsAccessed(SemanticModel semanticModel, IConditionalOperation ifOperation, IBlockOperation containingBlock, ISymbol localOrParameter, IExpressionStatementOperation expressionStatement, IAssignmentOperation assignmentExpression) 169IBlockOperation containingBlock, IConditionalOperation ifOperation, ISymbol localOrParameter, 277if (containingOperation is IBlockOperation block)
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.Analyzer.cs (1)
176return op is IBlockOperation block
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.cs (2)
88if (ifOperation is not IConditionalOperation { Parent: IBlockOperation parentBlock }) 147case IBlockOperation { Operations: { Length: 1 } statements }:
HashCodeAnalyzer.cs (2)
60if (operation is not IBlockOperation blockOperation) 77while (blockOperation.Operations is [IBlockOperation childBlock])
InitializeParameter\AbstractAddParameterCheckCodeRefactoringProvider.cs (10)
53IBlockOperation? blockStatementOpt, 87IBlockOperation? blockStatementOpt, 126IBlockOperation? blockStatementOpt, 246IBlockOperation? blockStatementOpt, CancellationToken cancellationToken) 317IBlockOperation? blockStatement, 340IBlockOperation? blockStatementOpt, 356IBlockOperation? blockStatement, 409IBlockOperation? blockStatement, 453IBlockOperation? blockStatement, 479IBlockOperation? blockStatement,
InitializeParameter\AbstractInitializeMemberFromParameterCodeRefactoringProviderMemberCreation.cs (21)
44protected abstract SyntaxNode? TryGetLastStatement(IBlockOperation? blockStatement); 49protected abstract bool TryUpdateTupleAssignment(IBlockOperation? blockStatement, IParameterSymbol parameter, ISymbol fieldOrProperty, SyntaxEditor editor); 52Document document, SyntaxNode functionDeclaration, IMethodSymbol method, IBlockOperation? blockStatementOpt, 65IBlockOperation? blockStatement, 111IBlockOperation? blockStatement, 163IBlockOperation? blockStatement, 197IBlockOperation? blockStatement, 221IBlockOperation? blockStatement, 247IBlockOperation? blockStatement, 269IParameterSymbol parameter, IBlockOperation? blockStatement) 380IBlockOperation? blockStatement, 415IBlockOperation? currentBlockStatement = null; 418currentBlockStatement = (IBlockOperation?)currentSemanticModel.GetOperation(currentRoot.GetCurrentNode(blockStatement.Syntax)!, cancellationToken); 446IBlockOperation? blockStatement, 534IBlockOperation? blockStatement, 563IParameterSymbol parameter, IBlockOperation? blockStatement, 620IParameterSymbol parameter, IBlockOperation? blockStatement) 646private static IOperation? TryFindFieldOrPropertyAssignmentStatement(IParameterSymbol parameter, IBlockOperation? blockStatement) 675IParameterSymbol parameter, IBlockOperation? blockStatement, out ISymbol? fieldOrProperty) 733Document document, IParameterSymbol parameter, IBlockOperation? blockStatement, ImmutableArray<NamingRule> rules, ImmutableArray<string> parameterWords, CancellationToken cancellationToken) 787static bool ContainsMemberAssignment(IBlockOperation? blockStatement, ISymbol member)
InitializeParameter\AbstractInitializeParameterCodeRefactoringProvider.cs (5)
43IBlockOperation? blockStatement, 55IBlockOperation? blockStatement, 103if (CanOfferRefactoring(functionDeclaration, semanticModel, syntaxFacts, cancellationToken, out var blockStatementOpt)) 149CancellationToken cancellationToken, out IBlockOperation? blockStatement) 178blockStatement = (IBlockOperation)operation;
J\s\src\Analyzers\Core\Analyzers\UseConditionalExpression\UseConditionalExpressionHelpers.cs\UseConditionalExpressionHelpers.cs (1)
60=> statement is IBlockOperation block && block.Operations.Length == 1
UseConditionalExpressionForReturnHelpers.cs (1)
49if (ifOperation.Parent is not IBlockOperation parentBlock)
ValueTracking\ValueTracker.OperationCollector.cs (1)
44IBlockOperation blockOperation => VisitReturnDescendentsAsync(blockOperation, allowImplicit: false, cancellationToken),
Microsoft.CodeAnalysis.Test.Utilities (6)
Compilation\CompilationExtensions.cs (1)
360case IBlockOperation blockOperation:
Compilation\ControlFlowGraphVerifier.cs (1)
44case IBlockOperation blockOperation:
Compilation\OperationTreeVerifier.cs (2)
440public override void VisitBlock(IBlockOperation operation) 442LogString(nameof(IBlockOperation));
Compilation\TestOperationVisitor.cs (1)
117public override void VisitBlock(IBlockOperation operation)
Diagnostics\OperationTestAnalyzer.cs (1)
1315var block = lambdaExpression.Body;
Microsoft.CodeAnalysis.UnitTests (2)
Diagnostics\OperationTests.cs (2)
120Assert.Throws<ArgumentNullException>(() => ControlFlowGraph.Create((IBlockOperation)null)); 150IBlockOperation block = new BlockOperation(
Microsoft.CodeAnalysis.VisualBasic (9)
Operations\VisualBasicOperationFactory.vb (9)
432Dim body As IBlockOperation = DirectCast(Create(boundLambda.Body), IBlockOperation) 1262Dim body As IBlockOperation = DirectCast(Create(boundTryStatement.TryBlock), IBlockOperation) 1264Dim [finally] As IBlockOperation = DirectCast(Create(boundTryStatement.FinallyBlockOpt), IBlockOperation) 1284Dim handler As IBlockOperation = DirectCast(Create(boundCatchBlock.Body), IBlockOperation) 1294Private Function CreateBoundBlockOperation(boundBlock As BoundBlock) As IBlockOperation
Microsoft.CodeAnalysis.VisualBasic.Features (3)
InitializeParameter\InitializeParameterHelpers.vb (1)
43Public Shared Function TryGetLastStatement(blockStatementOpt As IBlockOperation) As SyntaxNode
InitializeParameter\VisualBasicInitializeMemberFromParameterCodeRefactoringProvider.vb (2)
36Protected Overrides Function TryGetLastStatement(blockStatement As IBlockOperation) As SyntaxNode 85Protected Overrides Function TryUpdateTupleAssignment(blockStatement As IBlockOperation, parameter As IParameterSymbol, fieldOrProperty As ISymbol, editor As SyntaxEditor) As Boolean
Microsoft.CodeAnalysis.Workspaces (1)
OperationExtensions.cs (1)
400if (firstBlock is not IBlockOperation block)