19 references to EscapeLevel
Microsoft.CodeAnalysis.CSharp (19)
Binder\Binder.ValueChecks.cs (19)
46/// wider escape level. An destination that is <see cref="EscapeLevel.CallingMethod"/>
47/// can never be written to by an argument that has a level of <see cref="EscapeLevel.ReturnOnly"/>.
49internal EscapeLevel EscapeLevel { get; }
60internal MixableDestination(BoundExpression argument, EscapeLevel escapeLevel)
67internal bool IsAssignableFrom(EscapeLevel level) => EscapeLevel switch
69EscapeLevel.CallingMethod => level == EscapeLevel.CallingMethod,
70EscapeLevel.ReturnOnly => true,
132internal EscapeLevel EscapeLevel { get; }
136internal EscapeValue(ParameterSymbol? parameter, BoundExpression argument, EscapeLevel escapeLevel, bool isRefEscape)
144public void Deconstruct(out ParameterSymbol? parameter, out BoundExpression argument, out EscapeLevel escapeLevel, out bool isRefEscape)
1025private static EscapeLevel? EscapeLevelFromScope(uint scope) => scope switch
1027ReturnOnlyScope => EscapeLevel.ReturnOnly,
1028CallingMethodScope => EscapeLevel.CallingMethod,
1042private static EscapeLevel? GetParameterValEscapeLevel(ParameterSymbol parameter) =>
1057private static EscapeLevel? GetParameterRefEscapeLevel(ParameterSymbol parameter) =>
2199mixableArguments.Add(new MixableDestination(argument, EscapeLevel.CallingMethod));
2323escapeValues.Add(new EscapeValue(parameter: null, argument, EscapeLevel.ReturnOnly, isRefEscape: true));
2328escapeValues.Add(new EscapeValue(parameter: null, argument, EscapeLevel.CallingMethod, isRefEscape: false));