10 overrides of RefKind
Microsoft.CodeAnalysis.CSharp (6)
CodeGen\Optimizer.cs (1)
2303public override RefKind RefKind
FlowAnalysis\NullableWalker.PlaceholderLocal.cs (1)
59public override RefKind RefKind => RefKind.None;
Symbols\Source\SourceLocalSymbol.cs (1)
481public override RefKind RefKind
Symbols\Synthesized\SynthesizedLocal.cs (1)
98public sealed override RefKind RefKind
Symbols\Synthesized\TypeSubstitutedLocalSymbol.cs (1)
102public override RefKind RefKind
Symbols\UpdatedContainingSymbolLocal.cs (1)
79public override RefKind RefKind => _underlyingLocal.RefKind;
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler (4)
Symbols\EEDisplayClassFieldLocalSymbol.cs (1)
75public override RefKind RefKind
Symbols\EELocalConstantSymbol.cs (1)
97public override RefKind RefKind
Symbols\EELocalSymbol.cs (1)
139public override RefKind RefKind
Symbols\PlaceholderLocalSymbol.cs (1)
114public override RefKind RefKind
58 references to RefKind
Microsoft.CodeAnalysis.CSharp (55)
Binder\Binder.ValueChecks.cs (6)
839if (localSymbol.RefKind == RefKind.RefReadOnly || 840(localSymbol.RefKind == RefKind.None && !localSymbol.IsWritableVariable)) 848if (localSymbol.RefKind == RefKind.None) 880if (localSymbol.RefKind == RefKind.None) 4636return !((CodeGenerator.IsStackLocal(local, stackLocalsOpt) && local.RefKind == RefKind.None) || 4637(!IsAnyReadOnly(addressKind) && local.RefKind == RefKind.RefReadOnly));
Binder\Binder_Expressions.cs (1)
1899if (IsBadLocalOrParameterCapture(localSymbol, type, localSymbol.RefKind))
Binder\Binder_Operators.cs (1)
2632return localSymbol.RefKind != RefKind.None;
Binder\RefSafetyAnalysis.cs (1)
861AddLocalScopes(local, refEscapeScope: local.RefKind == RefKind.None ? _localScopeDepth : collectionEscape, valEscapeScope: collectionEscape);
BoundTree\BoundExpressionExtensions.cs (1)
25return ((BoundLocal)node).LocalSymbol.RefKind;
CodeGen\EmitAddress.cs (2)
271if (local.RefKind != RefKind.None) 279throw ExceptionUtilities.UnexpectedValue(local.RefKind);
CodeGen\EmitExpression.cs (6)
1252return ((BoundLocal)receiver).LocalSymbol.RefKind != RefKind.None; 1352bool isRefLocal = local.LocalSymbol.RefKind != RefKind.None; 1994return ((BoundLocal)receiver).LocalSymbol.RefKind != RefKind.None; 2545return ((BoundLocal)left).LocalSymbol.RefKind == RefKind.None; 2614if (left.LocalSymbol.RefKind != RefKind.None && !assignmentOperator.IsRef) 2859if (local.LocalSymbol.RefKind != RefKind.None && !assignment.IsRef)
CodeGen\EmitStatement.cs (5)
724Debug.Assert(local.RefKind == RefKind.None || local.SynthesizedKind.IsLongLived(), 1122Debug.Assert(exceptionSourceLocal.LocalSymbol.RefKind == RefKind.None); 1258if (local.RefKind == RefKind.None && !IsStackLocal(local)) 1766Debug.Assert(local.RefKind == RefKind.None); 1782(local.RefKind != RefKind.None ? LocalSlotConstraints.ByRef : LocalSlotConstraints.None);
CodeGen\Optimizer.cs (10)
857if (node.LocalSymbol.RefKind != RefKind.None) 877if (node.LocalSymbol.RefKind != RefKind.None) 985if (localSymbol.RefKind == RefKind.RefReadOnly && 1048if (((BoundLocal)lhs).LocalSymbol.RefKind != RefKind.None) 1157if (unwrappedSequence is BoundLocal { LocalSymbol: { RefKind: not RefKind.None } localSymbol }) 1361if (localSym.RefKind == RefKind.None) 1807Debug.Assert(local.RefKind == RefKind.None, "cannot take a ref of a ref"); 1868return top.Item2 == (local.RefKind == RefKind.None ? ExprContext.Value : ExprContext.Address) && 2067return new BoundDup(node.Syntax, node.LocalSymbol.RefKind, node.Type); 2095var isIndirectLocalStore = left.LocalSymbol.RefKind != RefKind.None && !node.IsRef;
FlowAnalysis\AbstractFlowPass.cs (3)
1237VisitRvalue(node.InitializerOpt, isKnownToBeAnLvalue: node.LocalSymbol.RefKind != RefKind.None); 1240if (node.LocalSymbol.RefKind != RefKind.None) 1242WriteArgument(node.InitializerOpt, node.LocalSymbol.RefKind, method: null);
FlowAnalysis\DefiniteAssignment.cs (1)
1500if (local.LocalSymbol.RefKind != RefKind.None && !isRef)
Lowering\LocalRewriter\LocalRewriter_Call.cs (1)
1501var localRefKind = ((BoundLocal)argument).LocalSymbol.RefKind;
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (1)
842return localsMayBeAssignedOrCaptured || ((BoundLocal)expression).LocalSymbol.RefKind != RefKind.None;
Lowering\LocalRewriter\LocalRewriter_DeconstructionAssignmentOperator.cs (1)
168case BoundLocal { LocalSymbol: { RefKind: RefKind.None } localSymbol }:
Lowering\LocalRewriter\LocalRewriter_FixedStatement.cs (1)
36if (pinnedTemp.RefKind == RefKind.None)
Lowering\LocalRewriter\LocalRewriter_UnaryOperator.cs (1)
485return ((BoundLocal)expression).LocalSymbol.RefKind != RefKind.None;
Lowering\MethodToClassRewriter.cs (1)
484if (leftLocal.LocalSymbol.RefKind != RefKind.None &&
Lowering\SpillSequenceSpiller.cs (5)
467Left: BoundLocal { LocalSymbol: { SynthesizedKind: SynthesizedLocalKind.LoweringTemp, RefKind: RefKind.Ref } receiverRefLocal }, 470ValueTypeReceiver: BoundLocal { LocalSymbol: { SynthesizedKind: SynthesizedLocalKind.LoweringTemp, RefKind: RefKind.Ref } } valueTypeReceiver, 479Left: BoundLocal { LocalSymbol: { SynthesizedKind: SynthesizedLocalKind.LoweringTemp, RefKind: RefKind.None } referenceTypeClone }, 480Right: BoundLocal { LocalSymbol: { SynthesizedKind: SynthesizedLocalKind.LoweringTemp, RefKind: RefKind.Ref } originalReceiverReference } 483Value: BoundLocal { LocalSymbol: { SynthesizedKind: SynthesizedLocalKind.LoweringTemp, RefKind: RefKind.None } } referenceTypeReceiver
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (1)
308if (local.RefKind != RefKind.None)
Lowering\StateMachineRewriter\StateMachineRewriter.cs (2)
169if (local.RefKind != RefKind.None) 176Debug.Assert(local.RefKind == RefKind.None);
Symbols\LocalSymbol.cs (1)
358public bool IsRef => RefKind != RefKind.None;
Symbols\PublicModel\LocalSymbol.cs (1)
52RefKind ILocalSymbol.RefKind => _underlying.RefKind;
Symbols\SymbolExtensions.cs (1)
512refKind = local.RefKind;
Symbols\Synthesized\TypeSubstitutedLocalSymbol.cs (1)
104get { return _originalVariable.RefKind; }
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler (2)
EEAssemblyBuilder.cs (1)
109((local.RefKind == RefKind.None) ? LocalSlotConstraints.None : LocalSlotConstraints.ByRef);
Symbols\EELocalSymbolBase.cs (1)
26return new EELocalSymbol(method, local.Locations, local.Name, -1, local.DeclarationKind, type, local.RefKind, local.IsPinned, local.IsCompilerGenerated, local.CanScheduleToStack);
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (1)
Semantics\RefFieldTests.cs (1)
15221Assert.Equal(expectedRefKind, local.RefKind);