1 instantiation of LabelHandle
System.Reflection.Metadata (1)
System\Reflection\Metadata\Ecma335\Encoding\ControlFlowBuilder.cs (1)
114return new LabelHandle(_labels.Count);
101 references to LabelHandle
ILAssembler (46)
GrammarVisitor.cs (44)
996public Dictionary<string, LabelHandle> Labels { get; } = new(); 2713public GrammarResult.Literal<LabelHandle> VisitFilterClause(CILParser.FilterClauseContext context) 2717LabelHandle start = _currentMethod!.Definition.MethodBody.DefineLabel(); 2724var start = _currentMethod!.Labels.TryGetValue(VisitId(id).Value, out LabelHandle startLabel) ? startLabel : _currentMethod.Labels[VisitId(id).Value] = _currentMethod.Definition.MethodBody.DefineLabel(); 2729var start = _currentMethod!.Definition.MethodBody.DefineLabel(); 2772public GrammarResult.Literal<(LabelHandle Start, LabelHandle End)> VisitHandlerBlock(CILParser.HandlerBlockContext context) 2776LabelHandle start = _currentMethod!.Definition.MethodBody.DefineLabel(); 2779LabelHandle end = _currentMethod.Definition.MethodBody.DefineLabel(); 2786var start = _currentMethod!.Labels.TryGetValue(VisitId(ids[0]).Value, out LabelHandle startLabel) ? startLabel : _currentMethod.Labels[VisitId(ids[0]).Value] = _currentMethod.Definition.MethodBody.DefineLabel(); 2787var end = _currentMethod!.Labels.TryGetValue(VisitId(ids[1]).Value, out LabelHandle endLabel) ? endLabel : _currentMethod.Labels[VisitId(ids[1]).Value] = _currentMethod.Definition.MethodBody.DefineLabel(); 2793var start = _currentMethod!.Definition.MethodBody.DefineLabel(); 2794var end = _currentMethod.Definition.MethodBody.DefineLabel(); 2949if (!_currentMethod!.Labels.TryGetValue(label, out var handle)) 2964LabelHandle label = _currentMethod!.Definition.MethodBody.DefineLabel(); 3139var labels = new List<(LabelHandle Label, int? Offset)>(); 3145if (!_currentMethod!.Labels.TryGetValue(labelName, out var handle)) 3160LabelHandle labelHandle = _currentMethod!.Definition.MethodBody.DefineLabel(); 3421if (!_currentMethod!.Labels.TryGetValue(labelName, out var label)) 3662if (!currentMethod.Labels.TryGetValue(labelName, out var label)) 4684internal abstract record ExceptionClause(LabelHandle Start, LabelHandle End) 4686internal sealed record Catch(EntityRegistry.TypeEntity Type, LabelHandle Start, LabelHandle End) : ExceptionClause(Start, End); 4688internal sealed record Filter(LabelHandle FilterStart, LabelHandle Start, LabelHandle End) : ExceptionClause(Start, End); 4690internal sealed record Finally(LabelHandle Start, LabelHandle End) : ExceptionClause(Start, End); 4692internal sealed record Fault(LabelHandle Start, LabelHandle End) : ExceptionClause(Start, End); 4970public GrammarResult.Literal<(LabelHandle Start, LabelHandle End)> VisitTryBlock(CILParser.TryBlockContext context) 4974LabelHandle start = _currentMethod!.Definition.MethodBody.DefineLabel(); 4977LabelHandle end = _currentMethod.Definition.MethodBody.DefineLabel(); 4984var start = _currentMethod!.Labels.TryGetValue(VisitId(ids[0]).Value, out LabelHandle startLabel) ? startLabel : _currentMethod.Labels[VisitId(ids[0]).Value] = _currentMethod.Definition.MethodBody.DefineLabel(); 4985var end = _currentMethod!.Labels.TryGetValue(VisitId(ids[1]).Value, out LabelHandle endLabel) ? endLabel : _currentMethod.Labels[VisitId(ids[1]).Value] = _currentMethod.Definition.MethodBody.DefineLabel(); 4991var start = _currentMethod!.Definition.MethodBody.DefineLabel(); 4992var end = _currentMethod.Definition.MethodBody.DefineLabel();
InstructionEncoderExtensions.cs (2)
12public static void MarkLabel(this InstructionEncoder encoder, LabelHandle label, int ilOffset) 19private 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)