1 instantiation of LabelHandle
System.Reflection.Metadata (1)
System\Reflection\Metadata\Ecma335\Encoding\ControlFlowBuilder.cs (1)
114
return new
LabelHandle
(_labels.Count);
122 references to LabelHandle
ILAssembler (67)
EntityRegistry.cs (21)
2170
internal abstract record ExceptionRegion(
LabelHandle
TryStart,
LabelHandle
TryEnd,
LabelHandle
HandlerStart,
LabelHandle
HandlerEnd)
2172
internal sealed record CatchRegion(
LabelHandle
TryStart,
LabelHandle
TryEnd,
LabelHandle
HandlerStart,
LabelHandle
HandlerEnd, TypeEntity CatchType) : ExceptionRegion(TryStart, TryEnd, HandlerStart, HandlerEnd);
2173
internal sealed record FinallyRegion(
LabelHandle
TryStart,
LabelHandle
TryEnd,
LabelHandle
HandlerStart,
LabelHandle
HandlerEnd) : ExceptionRegion(TryStart, TryEnd, HandlerStart, HandlerEnd);
2174
internal sealed record FaultRegion(
LabelHandle
TryStart,
LabelHandle
TryEnd,
LabelHandle
HandlerStart,
LabelHandle
HandlerEnd) : ExceptionRegion(TryStart, TryEnd, HandlerStart, HandlerEnd);
2175
internal sealed record FilterRegion(
LabelHandle
TryStart,
LabelHandle
TryEnd,
LabelHandle
HandlerStart,
LabelHandle
HandlerEnd,
LabelHandle
FilterStart) : ExceptionRegion(TryStart, TryEnd, HandlerStart, HandlerEnd);
GrammarVisitor.cs (44)
1076
public Dictionary<string,
LabelHandle
> Labels { get; } = new();
3065
public GrammarResult.Literal<
LabelHandle
> VisitFilterClause(CILParser.FilterClauseContext context)
3069
LabelHandle
start = _currentMethod!.Definition.MethodBody.DefineLabel();
3076
var
start = _currentMethod!.Labels.TryGetValue(VisitId(id).Value, out
LabelHandle
startLabel) ? startLabel : _currentMethod.Labels[VisitId(id).Value] = _currentMethod.Definition.MethodBody.DefineLabel();
3081
var
start = _currentMethod!.Definition.MethodBody.DefineLabel();
3131
public GrammarResult.Literal<(
LabelHandle
Start,
LabelHandle
End)> VisitHandlerBlock(CILParser.HandlerBlockContext context)
3135
LabelHandle
start = _currentMethod!.Definition.MethodBody.DefineLabel();
3138
LabelHandle
end = _currentMethod.Definition.MethodBody.DefineLabel();
3145
var
start = _currentMethod!.Labels.TryGetValue(VisitId(ids[0]).Value, out
LabelHandle
startLabel) ? startLabel : _currentMethod.Labels[VisitId(ids[0]).Value] = _currentMethod.Definition.MethodBody.DefineLabel();
3146
var
end = _currentMethod!.Labels.TryGetValue(VisitId(ids[1]).Value, out
LabelHandle
endLabel) ? endLabel : _currentMethod.Labels[VisitId(ids[1]).Value] = _currentMethod.Definition.MethodBody.DefineLabel();
3152
var
start = _currentMethod!.Definition.MethodBody.DefineLabel();
3153
var
end = _currentMethod.Definition.MethodBody.DefineLabel();
3323
if (!_currentMethod!.Labels.TryGetValue(label, out
var
handle))
3338
LabelHandle
label = _currentMethod!.Definition.MethodBody.DefineLabel();
3521
var labels = new List<(
LabelHandle
Label, int? Offset)>();
3529
if (!_currentMethod!.Labels.TryGetValue(labelName, out
var
handle))
3544
LabelHandle
labelHandle = _currentMethod!.Definition.MethodBody.DefineLabel();
3864
if (!_currentMethod!.Labels.TryGetValue(labelName, out
var
label))
4119
if (!currentMethod.Labels.TryGetValue(labelName, out
var
label))
5205
internal abstract record ExceptionClause(
LabelHandle
Start,
LabelHandle
End)
5207
internal sealed record Catch(EntityRegistry.TypeEntity Type,
LabelHandle
Start,
LabelHandle
End) : ExceptionClause(Start, End);
5209
internal sealed record Filter(
LabelHandle
FilterStart,
LabelHandle
Start,
LabelHandle
End) : ExceptionClause(Start, End);
5211
internal sealed record Finally(
LabelHandle
Start,
LabelHandle
End) : ExceptionClause(Start, End);
5213
internal sealed record Fault(
LabelHandle
Start,
LabelHandle
End) : ExceptionClause(Start, End);
5562
public GrammarResult.Literal<(
LabelHandle
Start,
LabelHandle
End)> VisitTryBlock(CILParser.TryBlockContext context)
5566
LabelHandle
start = _currentMethod!.Definition.MethodBody.DefineLabel();
5569
LabelHandle
end = _currentMethod.Definition.MethodBody.DefineLabel();
5576
var
start = _currentMethod!.Labels.TryGetValue(VisitId(ids[0]).Value, out
LabelHandle
startLabel) ? startLabel : _currentMethod.Labels[VisitId(ids[0]).Value] = _currentMethod.Definition.MethodBody.DefineLabel();
5577
var
end = _currentMethod!.Labels.TryGetValue(VisitId(ids[1]).Value, out
LabelHandle
endLabel) ? endLabel : _currentMethod.Labels[VisitId(ids[1]).Value] = _currentMethod.Definition.MethodBody.DefineLabel();
5583
var
start = _currentMethod!.Definition.MethodBody.DefineLabel();
5584
var
end = _currentMethod.Definition.MethodBody.DefineLabel();
InstructionEncoderExtensions.cs (2)
11
public static void MarkLabel(this InstructionEncoder encoder,
LabelHandle
label, int ilOffset)
18
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)