1 write to FirstBlockOrdinal
Microsoft.CodeAnalysis (1)
Operations\ControlFlowRegion.cs (1)
75FirstBlockOrdinal = firstBlockOrdinal;
116 references to FirstBlockOrdinal
GenerateDocumentationAndConfigFiles (12)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ControlFlowRegionExtensions.cs (1)
10=> region.FirstBlockOrdinal <= destinationOrdinal && region.LastBlockOrdinal >= destinationOrdinal;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (7)
133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 281var previousAnalysisData = analyzer.GetCurrentAnalysisData(blocks[@finally.FirstBlockOrdinal]); 291@finally.FirstBlockOrdinal, 327var currentAnalysisData = analyzer.GetCurrentAnalysisData(blocks[fromRegion.FirstBlockOrdinal]); 385toVisit.Add(@catch.FirstBlockOrdinal); 389var entryBlock = blocks[@catch.FirstBlockOrdinal]; 391Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (4)
370basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 377while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 413var firstBasicBlockInOutermostRegion = ControlFlowGraph.Blocks[containingTryCatchFinallyRegion.FirstBlockOrdinal]; 418foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
ILLink.RoslynAnalyzer (1)
DataFlow\ControlFlowGraphProxy.cs (1)
248new BlockProxy(ControlFlowGraph.Blocks[region.Region.FirstBlockOrdinal]);
Microsoft.CodeAnalysis (12)
Operations\ControlFlowGraph.cs (1)
47Debug.Assert(root.FirstBlockOrdinal == 0);
Operations\ControlFlowGraphBuilder.cs (4)
389@finally.FirstBlockOrdinal, 480toVisit.Add(blocks[@catch.FirstBlockOrdinal]); 484BasicBlockBuilder entryBlock = blocks[@catch.FirstBlockOrdinal]; 486Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal);
Operations\ControlFlowGraphBuilder.RegionBuilder.cs (1)
356for (int i = firstBlockWithoutRegion; i < region.FirstBlockOrdinal; i++)
Operations\ControlFlowRegion.cs (6)
99Debug.Assert(NestedRegions[0].FirstBlockOrdinal == firstBlockOrdinal); 101Debug.Assert(NestedRegions[0].LastBlockOrdinal + 1 == NestedRegions[1].FirstBlockOrdinal); 107Debug.Assert(NestedRegions[0].FirstBlockOrdinal == firstBlockOrdinal); 113Debug.Assert(previousLast + 1 == r.FirstBlockOrdinal); 134Debug.Assert(previousLast < r.FirstBlockOrdinal); 149return FirstBlockOrdinal <= destinationOrdinal && LastBlockOrdinal >= destinationOrdinal;
Microsoft.CodeAnalysis.Analyzers (12)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ControlFlowRegionExtensions.cs (1)
10=> region.FirstBlockOrdinal <= destinationOrdinal && region.LastBlockOrdinal >= destinationOrdinal;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (7)
133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 281var previousAnalysisData = analyzer.GetCurrentAnalysisData(blocks[@finally.FirstBlockOrdinal]); 291@finally.FirstBlockOrdinal, 327var currentAnalysisData = analyzer.GetCurrentAnalysisData(blocks[fromRegion.FirstBlockOrdinal]); 385toVisit.Add(@catch.FirstBlockOrdinal); 389var entryBlock = blocks[@catch.FirstBlockOrdinal]; 391Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (4)
370basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 377while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 413var firstBasicBlockInOutermostRegion = ControlFlowGraph.Blocks[containingTryCatchFinallyRegion.FirstBlockOrdinal]; 418foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
Microsoft.CodeAnalysis.AnalyzerUtilities (31)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\Extensions\BasicBlockExtensions.cs (3)
105var ordinalToCompare = first ? enclosingRegion.FirstBlockOrdinal : enclosingRegion.LastBlockOrdinal; 146if (basicBlock.EnclosingRegion?.FirstBlockOrdinal != basicBlock.Ordinal) 155if (enclosingRegion?.FirstBlockOrdinal != basicBlock.Ordinal)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\Extensions\ControlFlowRegionExtensions.cs (3)
12=> controlFlowRegion.FirstBlockOrdinal <= nestedRegion.FirstBlockOrdinal && 17for (var i = controlFlowRegion.FirstBlockOrdinal; i <= controlFlowRegion.LastBlockOrdinal; i++)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowAnalysis.cs (12)
236p => p >= tryRegion.FirstBlockOrdinal && 280Debug.Assert(block.EnclosingRegion.FirstBlockOrdinal == block.Ordinal); 300block.EnclosingRegion.EnclosingRegion.FirstBlockOrdinal == block.Ordinal) 354for (int i = finallyRegion.FirstBlockOrdinal; i <= finallyRegion.LastBlockOrdinal; i++) 498if (catchRegion == null || sourceBlock.Ordinal >= catchRegion.FirstBlockOrdinal) 514var catchBlock = cfg.Blocks[catchRegion.FirstBlockOrdinal]; 594if (block.EnclosingRegion?.FirstBlockOrdinal == block.Ordinal) 655var destination = cfg.Blocks[firstFinally.FirstBlockOrdinal]; 676successor = new BranchWithInfo(destination: cfg.Blocks[finallyRegion.FirstBlockOrdinal]); 700if (finallyRegion.LastBlockOrdinal < catchRegion.FirstBlockOrdinal) 702var successor = new BranchWithInfo(destination: cfg.Blocks[catchRegion.FirstBlockOrdinal]); 719worklist.Add(catchRegion.FirstBlockOrdinal);
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (1)
3797return tryRegion.FirstBlockOrdinal <= pendingThrow.BasicBlockOrdinal && tryRegion.LastBlockOrdinal >= pendingThrow.BasicBlockOrdinal;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ControlFlowRegionExtensions.cs (1)
10=> region.FirstBlockOrdinal <= destinationOrdinal && region.LastBlockOrdinal >= destinationOrdinal;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (7)
133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 281var previousAnalysisData = analyzer.GetCurrentAnalysisData(blocks[@finally.FirstBlockOrdinal]); 291@finally.FirstBlockOrdinal, 327var currentAnalysisData = analyzer.GetCurrentAnalysisData(blocks[fromRegion.FirstBlockOrdinal]); 385toVisit.Add(@catch.FirstBlockOrdinal); 389var entryBlock = blocks[@catch.FirstBlockOrdinal]; 391Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (4)
370basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 377while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 413var firstBasicBlockInOutermostRegion = ControlFlowGraph.Blocks[containingTryCatchFinallyRegion.FirstBlockOrdinal]; 418foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
Microsoft.CodeAnalysis.CodeStyle (12)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ControlFlowRegionExtensions.cs (1)
10=> region.FirstBlockOrdinal <= destinationOrdinal && region.LastBlockOrdinal >= destinationOrdinal;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (7)
133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 281var previousAnalysisData = analyzer.GetCurrentAnalysisData(blocks[@finally.FirstBlockOrdinal]); 291@finally.FirstBlockOrdinal, 327var currentAnalysisData = analyzer.GetCurrentAnalysisData(blocks[fromRegion.FirstBlockOrdinal]); 385toVisit.Add(@catch.FirstBlockOrdinal); 389var entryBlock = blocks[@catch.FirstBlockOrdinal]; 391Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (4)
370basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 377while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 413var firstBasicBlockInOutermostRegion = ControlFlowGraph.Blocks[containingTryCatchFinallyRegion.FirstBlockOrdinal]; 418foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
Microsoft.CodeAnalysis.ResxSourceGenerator (12)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ControlFlowRegionExtensions.cs (1)
10=> region.FirstBlockOrdinal <= destinationOrdinal && region.LastBlockOrdinal >= destinationOrdinal;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (7)
133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 281var previousAnalysisData = analyzer.GetCurrentAnalysisData(blocks[@finally.FirstBlockOrdinal]); 291@finally.FirstBlockOrdinal, 327var currentAnalysisData = analyzer.GetCurrentAnalysisData(blocks[fromRegion.FirstBlockOrdinal]); 385toVisit.Add(@catch.FirstBlockOrdinal); 389var entryBlock = blocks[@catch.FirstBlockOrdinal]; 391Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (4)
370basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 377while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 413var firstBasicBlockInOutermostRegion = ControlFlowGraph.Blocks[containingTryCatchFinallyRegion.FirstBlockOrdinal]; 418foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
Microsoft.CodeAnalysis.Workspaces (12)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ControlFlowRegionExtensions.cs (1)
10=> region.FirstBlockOrdinal <= destinationOrdinal && region.LastBlockOrdinal >= destinationOrdinal;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (7)
133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 281var previousAnalysisData = analyzer.GetCurrentAnalysisData(blocks[@finally.FirstBlockOrdinal]); 291@finally.FirstBlockOrdinal, 327var currentAnalysisData = analyzer.GetCurrentAnalysisData(blocks[fromRegion.FirstBlockOrdinal]); 385toVisit.Add(@catch.FirstBlockOrdinal); 389var entryBlock = blocks[@catch.FirstBlockOrdinal]; 391Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (4)
370basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 377while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 413var firstBasicBlockInOutermostRegion = ControlFlowGraph.Blocks[containingTryCatchFinallyRegion.FirstBlockOrdinal]; 418foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
Roslyn.Diagnostics.Analyzers (12)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ControlFlowRegionExtensions.cs (1)
10=> region.FirstBlockOrdinal <= destinationOrdinal && region.LastBlockOrdinal >= destinationOrdinal;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (7)
133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 281var previousAnalysisData = analyzer.GetCurrentAnalysisData(blocks[@finally.FirstBlockOrdinal]); 291@finally.FirstBlockOrdinal, 327var currentAnalysisData = analyzer.GetCurrentAnalysisData(blocks[fromRegion.FirstBlockOrdinal]); 385toVisit.Add(@catch.FirstBlockOrdinal); 389var entryBlock = blocks[@catch.FirstBlockOrdinal]; 391Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (4)
370basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 377while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 413var firstBasicBlockInOutermostRegion = ControlFlowGraph.Blocks[containingTryCatchFinallyRegion.FirstBlockOrdinal]; 418foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))