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