25 references to EscapeLevel
Microsoft.CodeAnalysis.CSharp (25)
Binder\Binder.ValueChecks.cs (25)
346/// wider escape level. An destination that is <see cref="EscapeLevel.CallingMethod"/> 347/// can never be written to by an argument that has a level of <see cref="EscapeLevel.ReturnOnly"/>. 349internal EscapeLevel EscapeLevel { get; } 360internal MixableDestination(BoundExpression argument, EscapeLevel escapeLevel) 367internal bool IsAssignableFrom(EscapeLevel level) => EscapeLevel switch 369EscapeLevel.CallingMethod => level == EscapeLevel.CallingMethod, 370EscapeLevel.ReturnOnly => true, 432internal EscapeLevel EscapeLevel { get; } 436internal EscapeValue(ParameterSymbol? parameter, BoundExpression argument, EscapeLevel escapeLevel, bool isRefEscape) 444public void Deconstruct(out ParameterSymbol? parameter, out BoundExpression argument, out EscapeLevel escapeLevel, out bool isRefEscape) 1514private static EscapeLevel? EscapeLevelFromScope(SafeContext lifetime) => lifetime switch 1516{ IsReturnOnly: true } => EscapeLevel.ReturnOnly, 1517{ IsCallingMethod: true } => EscapeLevel.CallingMethod, 1531private static EscapeLevel? GetParameterValEscapeLevel(ParameterSymbol parameter) => 1546private static EscapeLevel? GetParameterRefEscapeLevel(ParameterSymbol parameter) => 2798mixableArguments.Add(new MixableDestination(argument, EscapeLevel.CallingMethod)); 2916if (escapeLevel != EscapeLevel.CallingMethod) 2918Debug.Assert(escapeLevel == EscapeLevel.ReturnOnly); 3008escapeValues.Add(new EscapeValue(parameter: null, argument, EscapeLevel.ReturnOnly, isRefEscape: true)); 3013escapeValues.Add(new EscapeValue(parameter: null, argument, EscapeLevel.CallingMethod, isRefEscape: false)); 3073escapeValues.Add(new EscapeValue(parameter: null, argument, EscapeLevel.CallingMethod, isRefEscape: false)); 3081escapeValues.Add(new EscapeValue(parameter, argument, EscapeLevel.CallingMethod, isRefEscape: false)); 3092escapeValues.Add(new EscapeValue(parameter, argument, EscapeLevel.CallingMethod, isRefEscape: true)); 4983if (escapeValue.IsRefEscape && escapeValue.EscapeLevel != EscapeLevel.CallingMethod)