1 write to Blocks
Microsoft.CodeAnalysis (1)
Operations\ControlFlowGraph.cs (1)
64Blocks = blocks;
54 references to Blocks
ILLink.RoslynAnalyzer (6)
DataFlow\ControlFlowGraphExtensions.cs (3)
17 var firstBlock = cfg.Blocks[0]; 24 var lastBlock = cfg.Blocks.Last (); 30 => cfg.Blocks.SelectMany (b => b.DescendantOperations ());
DataFlow\ControlFlowGraphProxy.cs (3)
51 foreach (var block in ControlFlowGraph.Blocks) 232 new BlockProxy (ControlFlowGraph.Blocks[region.Region.FirstBlockOrdinal]); 235 new BlockProxy (ControlFlowGraph.Blocks[region.Region.LastBlockOrdinal]);
Microsoft.CodeAnalysis (3)
Operations\BasicBlock.cs (1)
120/// which can be used to index into <see cref="ControlFlowGraph.Blocks"/> array.
Operations\BasicBlockKind.cs (2)
14/// which is always the first block in <see cref="ControlFlowGraph.Blocks"/>. 20/// which is always the last block in <see cref="ControlFlowGraph.Blocks"/>.
Microsoft.CodeAnalysis.AnalyzerUtilities (21)
src\RoslynAnalyzers\Utilities\FlowAnalysis\Extensions\BasicBlockExtensions.cs (2)
24yield return (predecessorBlock: cfg.Blocks[lastFinally.LastBlockOrdinal], branchWithInfo); 223var sourceBlock = cfg.Blocks[ordinal];
src\RoslynAnalyzers\Utilities\FlowAnalysis\Extensions\ControlFlowGraphExtensions.cs (3)
15public static BasicBlock GetEntry(this ControlFlowGraph cfg) => cfg.Blocks.Single(b => b.Kind == BasicBlockKind.Entry); 16public static BasicBlock GetExit(this ControlFlowGraph cfg) => cfg.Blocks.Single(b => b.Kind == BasicBlockKind.Exit); 19foreach (BasicBlock block in cfg.Blocks)
src\RoslynAnalyzers\Utilities\FlowAnalysis\Extensions\ControlFlowRegionExtensions.cs (1)
19var block = cfg.Blocks[i];
src\RoslynAnalyzers\Utilities\FlowAnalysis\Extensions\IOperationExtensions_FlowAnalysis.cs (1)
21foreach (var block in cfg.Blocks)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ParameterValidationAnalysis\ParameterValidationAnalysis.cs (1)
115foreach (var block in analysisContext.ControlFlowGraph.Blocks)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowAnalysis.cs (13)
69using var pendingBlocksNeedingAtLeastOnePass = PooledSortedSet<int>.GetInstance(cfg.Blocks.Select(b => b.Ordinal)); 99foreach (var block in cfg.Blocks) 134foreach (var block in cfg.Blocks) 197foreach (var block in cfg.Blocks) 222var block = cfg.Blocks[blockOrdinal]; 237cfg.Blocks[p].GetInnermostRegionStartedByBlock(ControlFlowRegionKind.Catch) != null); 513var catchBlock = cfg.Blocks[catchRegion.FirstBlockOrdinal]; 572var block = cfg.Blocks[blockOrdinal]; 654var destination = cfg.Blocks[firstFinally.FirstBlockOrdinal]; 675successor = new BranchWithInfo(destination: cfg.Blocks[finallyRegion.FirstBlockOrdinal]); 701var successor = new BranchWithInfo(destination: cfg.Blocks[catchRegion.FirstBlockOrdinal]); 803for (int i = cfg.Blocks.Length - 1; i > 0; i--) 805var block = cfg.Blocks[i];
Microsoft.CodeAnalysis.CodeStyle (9)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ControlFlowGraphExtensions.cs (3)
15var firstBlock = cfg.Blocks[0]; 22var lastBlock = cfg.Blocks.Last(); 28=> cfg.Blocks.SelectMany(b => b.DescendantOperations());
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (1)
310foreach (var block in cfg.Blocks)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (1)
32var blocks = controlFlowGraph.Blocks;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (4)
168foreach (var block in cfg.Blocks) 248foreach (var operation in cfg.Blocks[i].DescendantOperations()) 305lastBlockOrdinal: lambdaOrLocalFunctionCfg.Blocks.Length - 1, operationsBuilder, cancellationToken); 397var firstBasicBlockInOutermostRegion = ControlFlowGraph.Blocks[containingTryCatchFinallyRegion.FirstBlockOrdinal];
Microsoft.CodeAnalysis.CSharp.IOperation.UnitTests (2)
IOperation\IOperationTests_IAnonymousFunctionExpression.cs (2)
877return graph.Blocks.SelectMany(b => b.Operations.SelectMany(o => o.DescendantsAndSelf())).OfType<IFlowAnonymousFunctionOperation>().Single(); 933return graph.Blocks.SelectMany(b => b.Operations.SelectMany(o => o.DescendantsAndSelf())).OfType<IFlowAnonymousFunctionOperation>().ElementAt(index);
Microsoft.CodeAnalysis.Test.Utilities (4)
Compilation\ControlFlowGraphVerifier.cs (3)
92for (int i = 0; i < graph.Blocks.Length; i++) 94Assert.Equal(graph.Blocks[i].IsReachable, reachabilityVector[i]); 111ImmutableArray<BasicBlock> blocks = graph.Blocks;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (1)
32var blocks = controlFlowGraph.Blocks;
Microsoft.CodeAnalysis.Workspaces (9)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ControlFlowGraphExtensions.cs (3)
15var firstBlock = cfg.Blocks[0]; 22var lastBlock = cfg.Blocks.Last(); 28=> cfg.Blocks.SelectMany(b => b.DescendantOperations());
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (1)
310foreach (var block in cfg.Blocks)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (1)
32var blocks = controlFlowGraph.Blocks;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (4)
168foreach (var block in cfg.Blocks) 248foreach (var operation in cfg.Blocks[i].DescendantOperations()) 305lastBlockOrdinal: lambdaOrLocalFunctionCfg.Blocks.Length - 1, operationsBuilder, cancellationToken); 397var firstBasicBlockInOutermostRegion = ControlFlowGraph.Blocks[containingTryCatchFinallyRegion.FirstBlockOrdinal];