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