6 overrides of RefKind
Microsoft.CodeAnalysis.CSharp (6)
CodeGen\Optimizer.cs (1)
2427
public override RefKind
RefKind
FlowAnalysis\NullableWalker.PlaceholderLocal.cs (1)
59
public override RefKind
RefKind
=> RefKind.None;
Symbols\Source\SourceLocalSymbol.cs (1)
480
public override RefKind
RefKind
Symbols\Synthesized\SynthesizedLocal.cs (1)
98
public sealed override RefKind
RefKind
Symbols\Synthesized\TypeSubstitutedLocalSymbol.cs (1)
113
public override RefKind
RefKind
Symbols\UpdatedContainingSymbolLocal.cs (1)
79
public override RefKind
RefKind
=> _underlyingLocal.RefKind;
62 references to RefKind
Microsoft.CodeAnalysis.CSharp (62)
Binder\Binder.ValueChecks.cs (4)
1067
if (localSymbol.
RefKind
== RefKind.RefReadOnly ||
1068
(localSymbol.
RefKind
== RefKind.None && !localSymbol.IsWritableVariable))
1076
if (localSymbol.
RefKind
== RefKind.None)
1108
if (localSymbol.
RefKind
== RefKind.None)
Binder\Binder_Expressions.cs (2)
2092
if (IsBadLocalOrParameterCapture(localSymbol, type, localSymbol.
RefKind
))
2096
if (localSymbol.
RefKind
== RefKind.None && type.IsRestrictedType(ignoreSpanLikeTypes: true))
Binder\Binder_Operators.cs (1)
3070
return localSymbol.
RefKind
!= RefKind.None;
Binder\RefSafetyAnalysis.cs (1)
1138
AddLocalScopes(local, refEscapeScope: local.
RefKind
== RefKind.None ? _localScopeDepth : collectionEscape, valEscapeScope: collectionEscape);
BoundTree\BoundExpressionExtensions.cs (1)
25
return ((BoundLocal)node).LocalSymbol.
RefKind
;
CodeGen\CodeGenerator_HasHome.cs (2)
94
return !((CodeGenerator.IsStackLocal(local, stackLocalsOpt) && local.
RefKind
== RefKind.None) ||
95
(!IsAnyReadOnly(addressKind) && local.
RefKind
== RefKind.RefReadOnly));
CodeGen\EmitAddress.cs (2)
274
if (local.
RefKind
!= RefKind.None)
282
throw ExceptionUtilities.UnexpectedValue(local.
RefKind
);
CodeGen\EmitExpression.cs (6)
1292
return ((BoundLocal)receiver).LocalSymbol.
RefKind
!= RefKind.None;
1392
bool isRefLocal = local.LocalSymbol.
RefKind
!= RefKind.None;
2214
return ((BoundLocal)receiver).LocalSymbol.
RefKind
!= RefKind.None;
2762
return ((BoundLocal)left).LocalSymbol.
RefKind
== RefKind.None;
2832
if (left.LocalSymbol.
RefKind
!= RefKind.None && !assignmentOperator.IsRef)
3077
if (local.LocalSymbol.
RefKind
!= RefKind.None && !assignment.IsRef)
CodeGen\EmitStatement.cs (5)
749
Debug.Assert(local.
RefKind
== RefKind.None || local.SynthesizedKind.IsLongLived(),
1147
Debug.Assert(exceptionSourceLocal.LocalSymbol.
RefKind
== RefKind.None);
1283
if (local.
RefKind
== RefKind.None && !IsStackLocal(local))
1789
Debug.Assert(local.
RefKind
== RefKind.None);
1805
(local.
RefKind
!= RefKind.None ? LocalSlotConstraints.ByRef : LocalSlotConstraints.None);
CodeGen\Optimizer.cs (11)
857
if (node.LocalSymbol.
RefKind
!= RefKind.None)
877
if (node.LocalSymbol.
RefKind
!= RefKind.None)
985
if (localSymbol.
RefKind
is RefKind.RefReadOnly or RefKindExtensions.StrictIn &&
1048
if (((BoundLocal)lhs).LocalSymbol.
RefKind
!= RefKind.None)
1220
if (unwrappedSequence is BoundLocal { LocalSymbol: {
RefKind
: not RefKind.None } localSymbol })
1427
if (localSym.
RefKind
== RefKind.None)
1873
Debug.Assert(local.
RefKind
== RefKind.None, "cannot take a ref of a ref");
1934
return top.Item2 == (local.
RefKind
== RefKind.None ? ExprContext.Value : ExprContext.Address) &&
2133
return new BoundDup(node.Syntax, node.LocalSymbol.
RefKind
, node.Type);
2161
var isIndirectLocalStore = left.LocalSymbol.
RefKind
!= RefKind.None && !node.IsRef;
2190
left.LocalSymbol.
RefKind
== RefKind.Ref &&
FlowAnalysis\AbstractFlowPass.cs (3)
1292
VisitRvalue(node.InitializerOpt, isKnownToBeAnLvalue: node.LocalSymbol.
RefKind
!= RefKind.None);
1295
if (node.LocalSymbol.
RefKind
!= RefKind.None)
1297
WriteArgument(node.InitializerOpt, node.LocalSymbol.
RefKind
, method: null);
FlowAnalysis\DefiniteAssignment.cs (2)
1571
if (local.LocalSymbol.
RefKind
!= RefKind.None && !isRef)
2783
NoteWrite(iterationVariable, null, read: true, isRef: iterationVariable.
RefKind
!= RefKind.None);
FlowAnalysis\NullableWalker.cs (1)
10409
case BoundLocal { LocalSymbol.
RefKind
: RefKind.None }:
Lowering\LocalRewriter\LocalRewriter_Call.cs (1)
1644
var localRefKind = ((BoundLocal)argument).LocalSymbol.
RefKind
;
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (1)
916
return localsMayBeAssignedOrCaptured || ((BoundLocal)expression).LocalSymbol.
RefKind
!= RefKind.None;
Lowering\LocalRewriter\LocalRewriter_DeconstructionAssignmentOperator.cs (1)
168
case BoundLocal { LocalSymbol: {
RefKind
: RefKind.None } localSymbol }:
Lowering\LocalRewriter\LocalRewriter_FixedStatement.cs (1)
36
if (pinnedTemp.
RefKind
== RefKind.None)
Lowering\LocalRewriter\LocalRewriter_UnaryOperator.cs (1)
622
return ((BoundLocal)expression).LocalSymbol.
RefKind
!= RefKind.None;
Lowering\MethodToClassRewriter.cs (1)
267
if (leftLocal.LocalSymbol.
RefKind
!= RefKind.None &&
Lowering\SpillSequenceSpiller.cs (5)
538
Left: BoundLocal { LocalSymbol: { SynthesizedKind: SynthesizedLocalKind.LoweringTemp,
RefKind
: RefKind.Ref } receiverRefLocal },
541
ValueTypeReceiver: BoundLocal { LocalSymbol: { SynthesizedKind: SynthesizedLocalKind.LoweringTemp,
RefKind
: RefKind.Ref } } valueTypeReceiver,
550
Left: BoundLocal { LocalSymbol: { SynthesizedKind: SynthesizedLocalKind.LoweringTemp,
RefKind
: RefKind.None } referenceTypeClone },
551
Right: BoundLocal { LocalSymbol: { SynthesizedKind: SynthesizedLocalKind.LoweringTemp,
RefKind
: RefKind.Ref } originalReceiverReference }
554
Value: BoundLocal { LocalSymbol: { SynthesizedKind: SynthesizedLocalKind.LoweringTemp,
RefKind
: RefKind.None } } referenceTypeReceiver
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (2)
91
Debug.Assert(local.
RefKind
!= RefKind.None);
213
(variable is LocalSymbol {
RefKind
: not RefKind.None } refLocal && !canRefLocalBeHoisted(refLocal)))
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (2)
313
if (local.
RefKind
!= RefKind.None)
558
var replacement = HoistExpression(right, awaitSyntaxOpt, syntaxOffset, local.
RefKind
, sideEffects, hoistedFields, ref needsSacrificialEvaluation);
Lowering\StateMachineRewriter\StateMachineRewriter.cs (2)
171
if (local.
RefKind
!= RefKind.None)
179
Debug.Assert(local.
RefKind
== RefKind.None);
Symbols\LocalSymbol.cs (1)
365
public bool IsRef =>
RefKind
!= RefKind.None;
Symbols\PublicModel\LocalSymbol.cs (1)
52
RefKind ILocalSymbol.RefKind => _underlying.
RefKind
;
Symbols\SymbolExtensions.cs (1)
505
refKind = local.
RefKind
;
Symbols\Synthesized\TypeSubstitutedLocalSymbol.cs (1)
115
get { return _originalVariable.
RefKind
; }