3 instantiations of LabelInfo
System.Linq.Expressions (3)
System\Linq\Expressions\Compiler\LambdaCompiler.ControlFlow.cs (3)
17_labelInfo.Add(node, result = new LabelInfo(_ilg, node, false)); 33return new LabelInfo(_ilg, null, false); 258_labelInfo.Add(label, new LabelInfo(_ilg, label, TypeUtils.AreReferenceAssignable(lambda.ReturnType, label.Type)));
18 references to LabelInfo
System.Linq.Expressions (18)
System\Linq\Expressions\Compiler\LabelInfo.cs (4)
329private Dictionary<LabelTarget, LabelInfo>? _labels; // lazily allocated, we typically use this only once every 6th-7th block 369internal bool TryGetLabelInfo(LabelTarget target, out LabelInfo? info) 380internal void AddLabelInfo(LabelTarget target, LabelInfo info) 384_labels ??= new Dictionary<LabelTarget, LabelInfo>();
System\Linq\Expressions\Compiler\LambdaCompiler.ControlFlow.cs (8)
13private LabelInfo EnsureLabel(LabelTarget node) 15if (!_labelInfo.TryGetValue(node, out LabelInfo? result)) 22private LabelInfo ReferenceLabel(LabelTarget node) 24LabelInfo result = EnsureLabel(node); 29private LabelInfo DefineLabel(LabelTarget? node) 35LabelInfo result = EnsureLabel(node); 59LabelInfo? label = null; 96LabelInfo labelInfo = ReferenceLabel(node.Target);
System\Linq\Expressions\Compiler\LambdaCompiler.cs (2)
49private readonly Dictionary<LabelTarget, LabelInfo> _labelInfo = new Dictionary<LabelTarget, LabelInfo>();
System\Linq\Expressions\Compiler\LambdaCompiler.Lambda.cs (1)
247foreach (LabelInfo label in _labelInfo.Values)
System\Linq\Expressions\Compiler\LambdaCompiler.Statements.cs (3)
144LabelInfo breakTarget = DefineLabel(node.BreakLabel); 145LabelInfo continueTarget = DefineLabel(node.ContinueLabel); 468LabelInfo jumpInfo = ReferenceLabel(jump.Target);