1 instantiation of LabelHandle
System.Reflection.Metadata (1)
System\Reflection\Metadata\Ecma335\Encoding\ControlFlowBuilder.cs (1)
114
return new
LabelHandle
(_labels.Count);
101 references to LabelHandle
ILAssembler (46)
GrammarVisitor.cs (44)
996
public Dictionary<string,
LabelHandle
> Labels { get; } = new();
2713
public GrammarResult.Literal<
LabelHandle
> VisitFilterClause(CILParser.FilterClauseContext context)
2717
LabelHandle
start = _currentMethod!.Definition.MethodBody.DefineLabel();
2724
var
start = _currentMethod!.Labels.TryGetValue(VisitId(id).Value, out
LabelHandle
startLabel) ? startLabel : _currentMethod.Labels[VisitId(id).Value] = _currentMethod.Definition.MethodBody.DefineLabel();
2729
var
start = _currentMethod!.Definition.MethodBody.DefineLabel();
2772
public GrammarResult.Literal<(
LabelHandle
Start,
LabelHandle
End)> VisitHandlerBlock(CILParser.HandlerBlockContext context)
2776
LabelHandle
start = _currentMethod!.Definition.MethodBody.DefineLabel();
2779
LabelHandle
end = _currentMethod.Definition.MethodBody.DefineLabel();
2786
var
start = _currentMethod!.Labels.TryGetValue(VisitId(ids[0]).Value, out
LabelHandle
startLabel) ? startLabel : _currentMethod.Labels[VisitId(ids[0]).Value] = _currentMethod.Definition.MethodBody.DefineLabel();
2787
var
end = _currentMethod!.Labels.TryGetValue(VisitId(ids[1]).Value, out
LabelHandle
endLabel) ? endLabel : _currentMethod.Labels[VisitId(ids[1]).Value] = _currentMethod.Definition.MethodBody.DefineLabel();
2793
var
start = _currentMethod!.Definition.MethodBody.DefineLabel();
2794
var
end = _currentMethod.Definition.MethodBody.DefineLabel();
2949
if (!_currentMethod!.Labels.TryGetValue(label, out
var
handle))
2964
LabelHandle
label = _currentMethod!.Definition.MethodBody.DefineLabel();
3139
var labels = new List<(
LabelHandle
Label, int? Offset)>();
3145
if (!_currentMethod!.Labels.TryGetValue(labelName, out
var
handle))
3160
LabelHandle
labelHandle = _currentMethod!.Definition.MethodBody.DefineLabel();
3421
if (!_currentMethod!.Labels.TryGetValue(labelName, out
var
label))
3662
if (!currentMethod.Labels.TryGetValue(labelName, out
var
label))
4684
internal abstract record ExceptionClause(
LabelHandle
Start,
LabelHandle
End)
4686
internal sealed record Catch(EntityRegistry.TypeEntity Type,
LabelHandle
Start,
LabelHandle
End) : ExceptionClause(Start, End);
4688
internal sealed record Filter(
LabelHandle
FilterStart,
LabelHandle
Start,
LabelHandle
End) : ExceptionClause(Start, End);
4690
internal sealed record Finally(
LabelHandle
Start,
LabelHandle
End) : ExceptionClause(Start, End);
4692
internal sealed record Fault(
LabelHandle
Start,
LabelHandle
End) : ExceptionClause(Start, End);
4970
public GrammarResult.Literal<(
LabelHandle
Start,
LabelHandle
End)> VisitTryBlock(CILParser.TryBlockContext context)
4974
LabelHandle
start = _currentMethod!.Definition.MethodBody.DefineLabel();
4977
LabelHandle
end = _currentMethod.Definition.MethodBody.DefineLabel();
4984
var
start = _currentMethod!.Labels.TryGetValue(VisitId(ids[0]).Value, out
LabelHandle
startLabel) ? startLabel : _currentMethod.Labels[VisitId(ids[0]).Value] = _currentMethod.Definition.MethodBody.DefineLabel();
4985
var
end = _currentMethod!.Labels.TryGetValue(VisitId(ids[1]).Value, out
LabelHandle
endLabel) ? endLabel : _currentMethod.Labels[VisitId(ids[1]).Value] = _currentMethod.Definition.MethodBody.DefineLabel();
4991
var
start = _currentMethod!.Definition.MethodBody.DefineLabel();
4992
var
end = _currentMethod.Definition.MethodBody.DefineLabel();
InstructionEncoderExtensions.cs (2)
12
public static void MarkLabel(this InstructionEncoder encoder,
LabelHandle
label, int ilOffset)
19
private static extern void MarkLabel(ControlFlowBuilder builder, int ilOffset,
LabelHandle
label);
System.Reflection.Emit (4)
System\Reflection\Emit\ILGeneratorImpl.cs (4)
131
private
LabelHandle
GetMetaLabel(Label label) => _labelTable[label]._metaLabel;
255
LabelHandle
metadataLabel = _il.DefineLabel();
923
internal LabelInfo(
LabelHandle
metaLabel)
931
internal
LabelHandle
_metaLabel;
System.Reflection.Metadata (51)
System\Reflection\Metadata\Ecma335\Encoding\ControlFlowBuilder.cs (36)
16
internal readonly
LabelHandle
Label;
32
internal BranchInfo(int operandOffset,
LabelHandle
label, int instructionEndDisplacement, int ilOffset, ILOpCode opCode)
67
public readonly
LabelHandle
TryStart, TryEnd, HandlerStart, HandlerEnd, FilterStart;
72
LabelHandle
tryStart,
73
LabelHandle
tryEnd,
74
LabelHandle
handlerStart,
75
LabelHandle
handlerEnd,
76
LabelHandle
filterStart,
110
internal
LabelHandle
AddLabel()
117
internal void AddBranch(int operandOffset,
LabelHandle
label, int instructionEndDisplacement, int ilOffset, ILOpCode opCode)
139
internal void MarkLabel(int ilOffset,
LabelHandle
label)
147
private int GetLabelOffsetChecked(
LabelHandle
label)
158
private void ValidateLabel(
LabelHandle
label, string parameterName)
180
public void AddFinallyRegion(
LabelHandle
tryStart,
LabelHandle
tryEnd,
LabelHandle
handlerStart,
LabelHandle
handlerEnd) =>
192
public void AddFaultRegion(
LabelHandle
tryStart,
LabelHandle
tryEnd,
LabelHandle
handlerStart,
LabelHandle
handlerEnd) =>
206
public void AddCatchRegion(
LabelHandle
tryStart,
LabelHandle
tryEnd,
LabelHandle
handlerStart,
LabelHandle
handlerEnd, EntityHandle catchType)
226
public void AddFilterRegion(
LabelHandle
tryStart,
LabelHandle
tryEnd,
LabelHandle
handlerStart,
LabelHandle
handlerEnd,
LabelHandle
filterStart)
234
LabelHandle
tryStart,
235
LabelHandle
tryEnd,
236
LabelHandle
handlerStart,
237
LabelHandle
handlerEnd,
238
LabelHandle
filterStart = default(
LabelHandle
),
System\Reflection\Metadata\Ecma335\Encoding\InstructionEncoder.cs (7)
33
/// such as <see cref="Branch(ILOpCode,
LabelHandle
)"/>, <see cref="DefineLabel"/>, <see cref="MarkLabel(
LabelHandle
)"/> etc.
386
public
LabelHandle
DefineLabel()
391
internal void LabelOperand(ILOpCode code,
LabelHandle
label, int instructionEndDisplacement, int ilOffset)
417
public void Branch(ILOpCode code,
LabelHandle
label)
436
/// the method <see cref="SwitchInstructionEncoder.Branch(
LabelHandle
)"/>
475
public void MarkLabel(
LabelHandle
label)
System\Reflection\Metadata\Ecma335\Encoding\LabelHandle.cs (7)
9
public readonly struct LabelHandle : IEquatable<
LabelHandle
>
24
public bool Equals(
LabelHandle
other) => Id == other.Id;
25
public override bool Equals([NotNullWhen(true)] object? obj) => obj is
LabelHandle
labelHandle && Equals(labelHandle);
28
public static bool operator ==(
LabelHandle
left,
LabelHandle
right) => left.Equals(right);
29
public static bool operator !=(
LabelHandle
left,
LabelHandle
right) => !left.Equals(right);
System\Reflection\Metadata\Ecma335\Encoding\SwitchInstructionEncoder.cs (1)
34
public void Branch(
LabelHandle
label)