1 instantiation of LabelHandle
System.Reflection.Metadata (1)
System\Reflection\Metadata\Ecma335\Encoding\ControlFlowBuilder.cs (1)
114return new LabelHandle(_labels.Count);
122 references to LabelHandle
ILAssembler (67)
EntityRegistry.cs (21)
2170internal abstract record ExceptionRegion(LabelHandle TryStart, LabelHandle TryEnd, LabelHandle HandlerStart, LabelHandle HandlerEnd) 2172internal sealed record CatchRegion(LabelHandle TryStart, LabelHandle TryEnd, LabelHandle HandlerStart, LabelHandle HandlerEnd, TypeEntity CatchType) : ExceptionRegion(TryStart, TryEnd, HandlerStart, HandlerEnd); 2173internal sealed record FinallyRegion(LabelHandle TryStart, LabelHandle TryEnd, LabelHandle HandlerStart, LabelHandle HandlerEnd) : ExceptionRegion(TryStart, TryEnd, HandlerStart, HandlerEnd); 2174internal sealed record FaultRegion(LabelHandle TryStart, LabelHandle TryEnd, LabelHandle HandlerStart, LabelHandle HandlerEnd) : ExceptionRegion(TryStart, TryEnd, HandlerStart, HandlerEnd); 2175internal sealed record FilterRegion(LabelHandle TryStart, LabelHandle TryEnd, LabelHandle HandlerStart, LabelHandle HandlerEnd, LabelHandle FilterStart) : ExceptionRegion(TryStart, TryEnd, HandlerStart, HandlerEnd);
GrammarVisitor.cs (44)
1076public Dictionary<string, LabelHandle> Labels { get; } = new(); 3065public GrammarResult.Literal<LabelHandle> VisitFilterClause(CILParser.FilterClauseContext context) 3069LabelHandle start = _currentMethod!.Definition.MethodBody.DefineLabel(); 3076var start = _currentMethod!.Labels.TryGetValue(VisitId(id).Value, out LabelHandle startLabel) ? startLabel : _currentMethod.Labels[VisitId(id).Value] = _currentMethod.Definition.MethodBody.DefineLabel(); 3081var start = _currentMethod!.Definition.MethodBody.DefineLabel(); 3131public GrammarResult.Literal<(LabelHandle Start, LabelHandle End)> VisitHandlerBlock(CILParser.HandlerBlockContext context) 3135LabelHandle start = _currentMethod!.Definition.MethodBody.DefineLabel(); 3138LabelHandle end = _currentMethod.Definition.MethodBody.DefineLabel(); 3145var start = _currentMethod!.Labels.TryGetValue(VisitId(ids[0]).Value, out LabelHandle startLabel) ? startLabel : _currentMethod.Labels[VisitId(ids[0]).Value] = _currentMethod.Definition.MethodBody.DefineLabel(); 3146var end = _currentMethod!.Labels.TryGetValue(VisitId(ids[1]).Value, out LabelHandle endLabel) ? endLabel : _currentMethod.Labels[VisitId(ids[1]).Value] = _currentMethod.Definition.MethodBody.DefineLabel(); 3152var start = _currentMethod!.Definition.MethodBody.DefineLabel(); 3153var end = _currentMethod.Definition.MethodBody.DefineLabel(); 3323if (!_currentMethod!.Labels.TryGetValue(label, out var handle)) 3338LabelHandle label = _currentMethod!.Definition.MethodBody.DefineLabel(); 3521var labels = new List<(LabelHandle Label, int? Offset)>(); 3529if (!_currentMethod!.Labels.TryGetValue(labelName, out var handle)) 3544LabelHandle labelHandle = _currentMethod!.Definition.MethodBody.DefineLabel(); 3864if (!_currentMethod!.Labels.TryGetValue(labelName, out var label)) 4119if (!currentMethod.Labels.TryGetValue(labelName, out var label)) 5205internal abstract record ExceptionClause(LabelHandle Start, LabelHandle End) 5207internal sealed record Catch(EntityRegistry.TypeEntity Type, LabelHandle Start, LabelHandle End) : ExceptionClause(Start, End); 5209internal sealed record Filter(LabelHandle FilterStart, LabelHandle Start, LabelHandle End) : ExceptionClause(Start, End); 5211internal sealed record Finally(LabelHandle Start, LabelHandle End) : ExceptionClause(Start, End); 5213internal sealed record Fault(LabelHandle Start, LabelHandle End) : ExceptionClause(Start, End); 5562public GrammarResult.Literal<(LabelHandle Start, LabelHandle End)> VisitTryBlock(CILParser.TryBlockContext context) 5566LabelHandle start = _currentMethod!.Definition.MethodBody.DefineLabel(); 5569LabelHandle end = _currentMethod.Definition.MethodBody.DefineLabel(); 5576var start = _currentMethod!.Labels.TryGetValue(VisitId(ids[0]).Value, out LabelHandle startLabel) ? startLabel : _currentMethod.Labels[VisitId(ids[0]).Value] = _currentMethod.Definition.MethodBody.DefineLabel(); 5577var end = _currentMethod!.Labels.TryGetValue(VisitId(ids[1]).Value, out LabelHandle endLabel) ? endLabel : _currentMethod.Labels[VisitId(ids[1]).Value] = _currentMethod.Definition.MethodBody.DefineLabel(); 5583var start = _currentMethod!.Definition.MethodBody.DefineLabel(); 5584var end = _currentMethod.Definition.MethodBody.DefineLabel();
InstructionEncoderExtensions.cs (2)
11public static void MarkLabel(this InstructionEncoder encoder, LabelHandle label, int ilOffset) 18private static extern void MarkLabel(ControlFlowBuilder builder, int ilOffset, LabelHandle label);
System.Reflection.Emit (4)
System\Reflection\Emit\ILGeneratorImpl.cs (4)
131private LabelHandle GetMetaLabel(Label label) => _labelTable[label]._metaLabel; 255LabelHandle metadataLabel = _il.DefineLabel(); 923internal LabelInfo(LabelHandle metaLabel) 931internal LabelHandle _metaLabel;
System.Reflection.Metadata (51)
System\Reflection\Metadata\Ecma335\Encoding\ControlFlowBuilder.cs (36)
16internal readonly LabelHandle Label; 32internal BranchInfo(int operandOffset, LabelHandle label, int instructionEndDisplacement, int ilOffset, ILOpCode opCode) 67public readonly LabelHandle TryStart, TryEnd, HandlerStart, HandlerEnd, FilterStart; 72LabelHandle tryStart, 73LabelHandle tryEnd, 74LabelHandle handlerStart, 75LabelHandle handlerEnd, 76LabelHandle filterStart, 110internal LabelHandle AddLabel() 117internal void AddBranch(int operandOffset, LabelHandle label, int instructionEndDisplacement, int ilOffset, ILOpCode opCode) 139internal void MarkLabel(int ilOffset, LabelHandle label) 147private int GetLabelOffsetChecked(LabelHandle label) 158private void ValidateLabel(LabelHandle label, string parameterName) 180public void AddFinallyRegion(LabelHandle tryStart, LabelHandle tryEnd, LabelHandle handlerStart, LabelHandle handlerEnd) => 192public void AddFaultRegion(LabelHandle tryStart, LabelHandle tryEnd, LabelHandle handlerStart, LabelHandle handlerEnd) => 206public void AddCatchRegion(LabelHandle tryStart, LabelHandle tryEnd, LabelHandle handlerStart, LabelHandle handlerEnd, EntityHandle catchType) 226public void AddFilterRegion(LabelHandle tryStart, LabelHandle tryEnd, LabelHandle handlerStart, LabelHandle handlerEnd, LabelHandle filterStart) 234LabelHandle tryStart, 235LabelHandle tryEnd, 236LabelHandle handlerStart, 237LabelHandle handlerEnd, 238LabelHandle 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. 386public LabelHandle DefineLabel() 391internal void LabelOperand(ILOpCode code, LabelHandle label, int instructionEndDisplacement, int ilOffset) 417public void Branch(ILOpCode code, LabelHandle label) 436/// the method <see cref="SwitchInstructionEncoder.Branch(LabelHandle)"/> 475public void MarkLabel(LabelHandle label)
System\Reflection\Metadata\Ecma335\Encoding\LabelHandle.cs (7)
9public readonly struct LabelHandle : IEquatable<LabelHandle> 24public bool Equals(LabelHandle other) => Id == other.Id; 25public override bool Equals([NotNullWhen(true)] object? obj) => obj is LabelHandle labelHandle && Equals(labelHandle); 28public static bool operator ==(LabelHandle left, LabelHandle right) => left.Equals(right); 29public static bool operator !=(LabelHandle left, LabelHandle right) => !left.Equals(right);
System\Reflection\Metadata\Ecma335\Encoding\SwitchInstructionEncoder.cs (1)
34public void Branch(LabelHandle label)