140 references to ControlFlowBranchSemantics
GenerateDocumentationAndConfigFiles (11)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (11)
178
continueDispatchAfterFinally[current.EnclosingRegion] = branch.Semantics !=
ControlFlowBranchSemantics
.Throw &&
179
branch.Semantics !=
ControlFlowBranchSemantics
.Rethrow &&
180
current.FallThroughSuccessor.Semantics ==
ControlFlowBranchSemantics
.StructuredExceptionHandling;
212
case
ControlFlowBranchSemantics
.None:
213
case
ControlFlowBranchSemantics
.ProgramTermination:
214
case
ControlFlowBranchSemantics
.StructuredExceptionHandling:
215
case
ControlFlowBranchSemantics
.Error:
219
case
ControlFlowBranchSemantics
.Throw:
220
case
ControlFlowBranchSemantics
.Rethrow:
225
case
ControlFlowBranchSemantics
.Regular:
226
case
ControlFlowBranchSemantics
.Return:
ILLink.RoslynAnalyzer (1)
DataFlow\LocalDataFlowVisitor.cs (1)
108
if (block.Block.FallThroughSuccessor?.Semantics ==
ControlFlowBranchSemantics
.Throw)
Microsoft.CodeAnalysis (56)
Operations\ControlFlowBranch.cs (2)
25
ControlFlowBranchSemantics
semantics,
47
public
ControlFlowBranchSemantics
Semantics { get; }
Operations\ControlFlowGraphBuilder.BasicBlockBuilder.cs (1)
318
public
ControlFlowBranchSemantics
Kind { get; set; }
Operations\ControlFlowGraphBuilder.cs (53)
303
if (current.Ordinal == lastBlockOrdinal && branch.Kind !=
ControlFlowBranchSemantics
.Throw && branch.Kind !=
ControlFlowBranchSemantics
.Rethrow)
325
case
ControlFlowBranchSemantics
.None:
326
case
ControlFlowBranchSemantics
.ProgramTermination:
327
case
ControlFlowBranchSemantics
.StructuredExceptionHandling:
328
case
ControlFlowBranchSemantics
.Throw:
329
case
ControlFlowBranchSemantics
.Rethrow:
330
case
ControlFlowBranchSemantics
.Error:
334
case
ControlFlowBranchSemantics
.Regular:
335
case
ControlFlowBranchSemantics
.Return:
398
blocks[@finally.LastBlockOrdinal].FallThrough.Kind ==
ControlFlowBranchSemantics
.StructuredExceptionHandling;
713
Debug.Assert(predecessor.FallThrough.Kind ==
ControlFlowBranchSemantics
.Regular);
726
Debug.Assert((block.BranchValue != null && !block.HasCondition) == (next.Kind ==
ControlFlowBranchSemantics
.Return || next.Kind ==
ControlFlowBranchSemantics
.Throw));
728
(next.Kind ==
ControlFlowBranchSemantics
.ProgramTermination ||
729
next.Kind ==
ControlFlowBranchSemantics
.Throw ||
730
next.Kind ==
ControlFlowBranchSemantics
.Rethrow ||
731
next.Kind ==
ControlFlowBranchSemantics
.Error ||
732
next.Kind ==
ControlFlowBranchSemantics
.StructuredExceptionHandling));
735
if (next.Kind ==
ControlFlowBranchSemantics
.StructuredExceptionHandling)
761
next.Destination == null && next.Kind ==
ControlFlowBranchSemantics
.StructuredExceptionHandling &&
803
if (next.Kind ==
ControlFlowBranchSemantics
.StructuredExceptionHandling)
836
Debug.Assert(next.Kind ==
ControlFlowBranchSemantics
.Regular ||
837
next.Kind ==
ControlFlowBranchSemantics
.Return ||
838
next.Kind ==
ControlFlowBranchSemantics
.Throw ||
839
next.Kind ==
ControlFlowBranchSemantics
.Rethrow ||
840
next.Kind ==
ControlFlowBranchSemantics
.Error ||
841
next.Kind ==
ControlFlowBranchSemantics
.ProgramTermination);
863
if (!block.HasPredecessors && next.Kind ==
ControlFlowBranchSemantics
.Return)
952
if (next.Kind ==
ControlFlowBranchSemantics
.StructuredExceptionHandling)
957
Debug.Assert(next.Kind ==
ControlFlowBranchSemantics
.Regular ||
958
next.Kind ==
ControlFlowBranchSemantics
.Return ||
959
next.Kind ==
ControlFlowBranchSemantics
.Throw ||
960
next.Kind ==
ControlFlowBranchSemantics
.Rethrow ||
961
next.Kind ==
ControlFlowBranchSemantics
.Error ||
962
next.Kind ==
ControlFlowBranchSemantics
.ProgramTermination);
1105
Debug.Assert(predecessorBranch.Kind ==
ControlFlowBranchSemantics
.Regular);
1234
Debug.Assert(branch.Kind ==
ControlFlowBranchSemantics
.Regular);
1236
branch.Kind =
ControlFlowBranchSemantics
.Error;
1377
private static void LinkBlocks(BasicBlockBuilder prevBlock, BasicBlockBuilder nextBlock,
ControlFlowBranchSemantics
branchKind =
ControlFlowBranchSemantics
.Regular)
3295
return new BasicBlockBuilder.Branch() { Destination = destination, Kind =
ControlFlowBranchSemantics
.Regular };
3718
continueDispatchBlock.FallThrough.Kind =
ControlFlowBranchSemantics
.StructuredExceptionHandling;
3780
continueDispatchBlock.FallThrough.Kind =
ControlFlowBranchSemantics
.StructuredExceptionHandling;
3851
LinkBlocks(CurrentBasicBlock, _exit, returnedValue is null ?
ControlFlowBranchSemantics
.Regular :
ControlFlowBranchSemantics
.Return);
3952
Debug.Assert(current.FallThrough.Kind ==
ControlFlowBranchSemantics
.None);
3954
current.FallThrough.Kind = exception == null ?
ControlFlowBranchSemantics
.Rethrow :
ControlFlowBranchSemantics
.Throw;
4129
endOfFinally.FallThrough.Kind =
ControlFlowBranchSemantics
.StructuredExceptionHandling;
4411
endOfFinally.FallThrough.Kind =
ControlFlowBranchSemantics
.StructuredExceptionHandling;
5719
Debug.Assert(current.FallThrough.Kind ==
ControlFlowBranchSemantics
.None);
5720
current.FallThrough.Kind =
ControlFlowBranchSemantics
.ProgramTermination;
Microsoft.CodeAnalysis.Analyzers (11)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (11)
178
continueDispatchAfterFinally[current.EnclosingRegion] = branch.Semantics !=
ControlFlowBranchSemantics
.Throw &&
179
branch.Semantics !=
ControlFlowBranchSemantics
.Rethrow &&
180
current.FallThroughSuccessor.Semantics ==
ControlFlowBranchSemantics
.StructuredExceptionHandling;
212
case
ControlFlowBranchSemantics
.None:
213
case
ControlFlowBranchSemantics
.ProgramTermination:
214
case
ControlFlowBranchSemantics
.StructuredExceptionHandling:
215
case
ControlFlowBranchSemantics
.Error:
219
case
ControlFlowBranchSemantics
.Throw:
220
case
ControlFlowBranchSemantics
.Rethrow:
225
case
ControlFlowBranchSemantics
.Regular:
226
case
ControlFlowBranchSemantics
.Return:
Microsoft.CodeAnalysis.AnalyzerUtilities (17)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\BranchWithInfo.cs (3)
33
kind:
ControlFlowBranchSemantics
.Regular,
46
ControlFlowBranchSemantics
kind,
64
public
ControlFlowBranchSemantics
Kind { get; }
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (3)
720
case
ControlFlowBranchSemantics
.Return:
724
case
ControlFlowBranchSemantics
.Throw:
725
case
ControlFlowBranchSemantics
.Rethrow:
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (11)
178
continueDispatchAfterFinally[current.EnclosingRegion] = branch.Semantics !=
ControlFlowBranchSemantics
.Throw &&
179
branch.Semantics !=
ControlFlowBranchSemantics
.Rethrow &&
180
current.FallThroughSuccessor.Semantics ==
ControlFlowBranchSemantics
.StructuredExceptionHandling;
212
case
ControlFlowBranchSemantics
.None:
213
case
ControlFlowBranchSemantics
.ProgramTermination:
214
case
ControlFlowBranchSemantics
.StructuredExceptionHandling:
215
case
ControlFlowBranchSemantics
.Error:
219
case
ControlFlowBranchSemantics
.Throw:
220
case
ControlFlowBranchSemantics
.Rethrow:
225
case
ControlFlowBranchSemantics
.Regular:
226
case
ControlFlowBranchSemantics
.Return:
Microsoft.CodeAnalysis.CodeStyle (11)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (11)
178
continueDispatchAfterFinally[current.EnclosingRegion] = branch.Semantics !=
ControlFlowBranchSemantics
.Throw &&
179
branch.Semantics !=
ControlFlowBranchSemantics
.Rethrow &&
180
current.FallThroughSuccessor.Semantics ==
ControlFlowBranchSemantics
.StructuredExceptionHandling;
212
case
ControlFlowBranchSemantics
.None:
213
case
ControlFlowBranchSemantics
.ProgramTermination:
214
case
ControlFlowBranchSemantics
.StructuredExceptionHandling:
215
case
ControlFlowBranchSemantics
.Error:
219
case
ControlFlowBranchSemantics
.Throw:
220
case
ControlFlowBranchSemantics
.Rethrow:
225
case
ControlFlowBranchSemantics
.Regular:
226
case
ControlFlowBranchSemantics
.Return:
Microsoft.CodeAnalysis.ResxSourceGenerator (11)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (11)
178
continueDispatchAfterFinally[current.EnclosingRegion] = branch.Semantics !=
ControlFlowBranchSemantics
.Throw &&
179
branch.Semantics !=
ControlFlowBranchSemantics
.Rethrow &&
180
current.FallThroughSuccessor.Semantics ==
ControlFlowBranchSemantics
.StructuredExceptionHandling;
212
case
ControlFlowBranchSemantics
.None:
213
case
ControlFlowBranchSemantics
.ProgramTermination:
214
case
ControlFlowBranchSemantics
.StructuredExceptionHandling:
215
case
ControlFlowBranchSemantics
.Error:
219
case
ControlFlowBranchSemantics
.Throw:
220
case
ControlFlowBranchSemantics
.Rethrow:
225
case
ControlFlowBranchSemantics
.Regular:
226
case
ControlFlowBranchSemantics
.Return:
Microsoft.CodeAnalysis.Workspaces (11)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (11)
178
continueDispatchAfterFinally[current.EnclosingRegion] = branch.Semantics !=
ControlFlowBranchSemantics
.Throw &&
179
branch.Semantics !=
ControlFlowBranchSemantics
.Rethrow &&
180
current.FallThroughSuccessor.Semantics ==
ControlFlowBranchSemantics
.StructuredExceptionHandling;
212
case
ControlFlowBranchSemantics
.None:
213
case
ControlFlowBranchSemantics
.ProgramTermination:
214
case
ControlFlowBranchSemantics
.StructuredExceptionHandling:
215
case
ControlFlowBranchSemantics
.Error:
219
case
ControlFlowBranchSemantics
.Throw:
220
case
ControlFlowBranchSemantics
.Rethrow:
225
case
ControlFlowBranchSemantics
.Regular:
226
case
ControlFlowBranchSemantics
.Return:
Roslyn.Diagnostics.Analyzers (11)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (11)
178
continueDispatchAfterFinally[current.EnclosingRegion] = branch.Semantics !=
ControlFlowBranchSemantics
.Throw &&
179
branch.Semantics !=
ControlFlowBranchSemantics
.Rethrow &&
180
current.FallThroughSuccessor.Semantics ==
ControlFlowBranchSemantics
.StructuredExceptionHandling;
212
case
ControlFlowBranchSemantics
.None:
213
case
ControlFlowBranchSemantics
.ProgramTermination:
214
case
ControlFlowBranchSemantics
.StructuredExceptionHandling:
215
case
ControlFlowBranchSemantics
.Error:
219
case
ControlFlowBranchSemantics
.Throw:
220
case
ControlFlowBranchSemantics
.Rethrow:
225
case
ControlFlowBranchSemantics
.Regular:
226
case
ControlFlowBranchSemantics
.Return: