3 writes to _localScopeDepth
Microsoft.CodeAnalysis.CSharp (3)
Binder\RefSafetyAnalysis.cs (3)
87_localScopeDepth = SafeContext.CurrentMethod.Wider(); 99_analysis._localScopeDepth = _analysis._localScopeDepth.Narrower(); 112_analysis._localScopeDepth = _analysis._localScopeDepth.Wider();
50 references to _localScopeDepth
Microsoft.CodeAnalysis.CSharp (50)
Binder\Binder.ValueChecks.cs (5)
2628receiver = new BoundCapturedReceiverPlaceholder(receiver.Syntax, receiver, _localScopeDepth, receiver.Type).MakeCompilerGenerated(); 3212SetLocalScopes(localSymbol, refEscapeScope: _localScopeDepth, valEscapeScope: inferredDestinationValEscape); 3294SetLocalScopes(localSymbol, refEscapeScope: _localScopeDepth, valEscapeScope: inferredDestinationValEscape); 3650CheckRefEscape(expr.Syntax, expr, _localScopeDepth, escapeTo, checkingReceiver: false, diagnostics: diagnostics); 3654CheckValEscape(expr.Syntax, expr, _localScopeDepth, escapeTo, checkingReceiver: false, diagnostics: diagnostics);
Binder\Binder_Operators.cs (1)
5804var currentScope = _localScopeDepth;
Binder\Binder_Statements.cs (6)
1564var leftEscape = GetRefEscape(op1, _localScopeDepth); 1565var rightEscape = GetRefEscape(op2, _localScopeDepth); 1584leftEscape = GetValEscape(op1, _localScopeDepth); 1585rightEscape = GetValEscape(op2, _localScopeDepth); 1624var leftEscape = GetValEscape(op1, _localScopeDepth); 1653CheckInvocationArgMixing(node, in localMethodInvocationInfo, _localScopeDepth, methodInvocationInfo.MethodInfo.Method, diagnostics);
Binder\RefSafetyAnalysis.cs (38)
99_analysis._localScopeDepth = _analysis._localScopeDepth.Narrower(); 102_analysis.AddLocalScopes(local, refEscapeScope: _analysis._localScopeDepth, valEscapeScope: SafeContext.CallingMethod); 112_analysis._localScopeDepth = _analysis._localScopeDepth.Wider(); 391? GetValEscape(expr, _localScopeDepth) 392: _localScopeDepth; 407GetAwaitableInstancePlaceholders(placeholders, awaitableInfo, _localScopeDepth); 436using var _2 = new PatternInput(this, GetValEscape(node.Expression, _localScopeDepth)); 445using var _ = new PatternInput(this, GetValEscape(node.Expression, _localScopeDepth)); 491_localScopeDepth : 494_localScopeDepth : 534GetRefEscape(initializer, _localScopeDepth).IsConvertibleTo(refEscapeScope)); 544SetLocalScopes(localSymbol, _localScopeDepth, _localScopeDepth); 546valEscapeScope = GetValEscape(initializer, _localScopeDepth); 549refEscapeScope = GetRefEscape(initializer, _localScopeDepth); 600_localScopeDepth, 617using var _ = new PatternInput(this, GetValEscape(node.Expression, _localScopeDepth)); 656using (new PatternInput(this, _localScopeDepth)) 709SetLocalScopes(local, _localScopeDepth, _patternInputValEscape); 845_localScopeDepth, 860placeholders.Add((interpolationData.ReceiverPlaceholder, SafeContextAndLocation.Create(_localScopeDepth))); 879valEscapeScope = receiver.GetRefKind().IsWritableReference() ? GetRefEscape(receiver, _localScopeDepth) : GetValEscape(receiver, _localScopeDepth); 907valEscapeScope = GetValEscape(arguments[argIndex], _localScopeDepth); 964_localScopeDepth, 985var escapeFrom = GetValEscape(node.InitializerExpressionOpt, _localScopeDepth); 1005if (!escapeFrom.IsConvertibleTo(GetValEscape(argument, _localScopeDepth))) 1035_localScopeDepth, 1053_localScopeDepth, 1065GetAwaitableInstancePlaceholders(placeholders, node.AwaitableInfo, GetValEscape(node.Expression, _localScopeDepth)); 1133placeholders.Add((conversion.DeconstructionInfo.InputPlaceholder, SafeContextAndLocation.Create(GetValEscape(right, _localScopeDepth)))); 1146? GetValEscape(variable.Expression, _localScopeDepth) 1147: _localScopeDepth; 1167_localScopeDepth, 1212: new DeconstructionVariable(expr, GetValEscape(expr, _localScopeDepth), null); 1253_localScopeDepth, 1258collectionEscape = GetValEscape(node.Expression, _localScopeDepth); 1265AddLocalScopes(local, refEscapeScope: local.RefKind == RefKind.None ? _localScopeDepth : collectionEscape, valEscapeScope: collectionEscape);