1 write to IsRef
Microsoft.CodeAnalysis.CSharp (1)
Generated\BoundNodes.xml.Generated.cs (1)
1821this.IsRef = isRef;
65 references to IsRef
Microsoft.CodeAnalysis.CSharp (65)
Binder\Binder.ValueChecks.cs (6)
1250if (assignment.IsRef) 3130if (!assignment.IsRef) 3414if (!assignment.IsRef) 3835var rightValEscape = assignment.IsRef 4441bool valid = assignment.IsRef 4658if (!assignment.IsRef)
Binder\RefSafetyAnalysis.cs (1)
487ValidateAssignment(node.Syntax, node.Left, node.Right, node.IsRef, _diagnostics);
CodeGen\EmitAddress.cs (1)
158if (!assignment.IsRef || !HasHome(assignment, addressKind))
CodeGen\EmitExpression.cs (14)
2360if (assignmentOperator.IsRef) 2566!assignmentOperator.IsRef) 2583!assignmentOperator.IsRef) 2614if (left.LocalSymbol.RefKind != RefKind.None && !assignmentOperator.IsRef) 2704lhsUsesStack = EmitAssignmentPreamble(assignmentOperator.Update(sequence.Value, assignmentOperator.Right, assignmentOperator.IsRef, assignmentOperator.Type)); 2749if (!assignment.IsRef) 2765if (!assignmentOperator.IsRef) 2834assignmentOperator.IsRef ? LocalSlotConstraints.ByRef : LocalSlotConstraints.None); 2847EmitFieldStore((BoundFieldAccess)expression, assignment.IsRef); 2859if (local.LocalSymbol.RefKind != RefKind.None && !assignment.IsRef) 2888EmitParameterStore((BoundParameter)expression, assignment.IsRef); 2910EmitStore(assignment.Update(sequence.Value, assignment.Right, assignment.IsRef, assignment.Type)); 2934if (!nested.IsRef) 2963if (useKind == UseKind.UsedAsValue && assignment.IsRef)
CodeGen\Optimizer.cs (11)
907node.Update(sequence.Value, node.Right, node.IsRef, node.Type), 931if (node.IsRef || _context == ExprContext.Address) 974IsFixedBufferAssignmentToRefLocal(node.Left, node.Right, node.IsRef), 1005return node.Update(left, right, node.IsRef, node.Type); 1029Debug.Assert(!node.IsRef || 1042return !node.IsRef; 1050return !node.IsRef; 1068Debug.Assert(((BoundAssignmentOperator)lhs).IsRef, "only ref assignments are assignable"); 1072Debug.Assert(!IsIndirectAssignment(node.Update(((BoundSequence)node.Left).Value, node.Right, node.IsRef, node.Type)), 2095var isIndirectLocalStore = left.LocalSymbol.RefKind != RefKind.None && !node.IsRef; 2129return node.Update(left, right, node.IsRef, node.Type);
FlowAnalysis\AbstractFlowPass.cs (2)
1977VisitRvalue(node.Right, isKnownToBeAnLvalue: node.IsRef); 1980if (node.IsRef)
FlowAnalysis\DefiniteAssignment.cs (1)
2328Assign(node.Left, node.Right, isRef: node.IsRef);
FlowAnalysis\NullableWalker.cs (1)
9071if (!node.IsRef)
Generated\BoundNodes.xml.Generated.cs (5)
1834if (left != this.Left || right != this.Right || isRef != this.IsRef || !TypeSymbol.Equals(type, this.Type, TypeCompareKind.ConsiderEverything)) 10675return node.Update(left, right, node.IsRef, type); 12360updatedNode = node.Update(left, right, node.IsRef, infoAndType.Type!); 12365updatedNode = node.Update(left, right, node.IsRef, node.Type); 14812new TreeDumperNode("isRef", node.IsRef, null),
Lowering\Instrumentation\LocalStateTracingInstrumenter.cs (1)
366if (original.IsRef)
Lowering\LocalRewriter\LocalRewriter.cs (1)
954return ((BoundAssignmentOperator)expr).IsRef;
Lowering\LocalRewriter\LocalRewriter_AssignmentOperator.cs (2)
48Debug.Assert(!node.IsRef); 84return MakeStaticAssignmentOperator(node.Syntax, loweredLeft, loweredRight, node.IsRef, node.Type, used);
Lowering\LocalRewriter\LocalRewriter_Call.cs (4)
690Debug.Assert(assignmentToTemp.IsRef); 711extraRefInitialization = assignmentToTemp.Update(intermediateRef, assignmentToTemp.Right, assignmentToTemp.IsRef, assignmentToTemp.Type); 725assignmentToTemp.IsRef, 741assignmentToTemp.IsRef,
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (1)
699Debug.Assert(((BoundAssignmentOperator)originalLHS).IsRef);
Lowering\LocalRewriter\LocalRewriter_ObjectOrCollectionInitializerExpression.cs (1)
357result.Add(MakeStaticAssignmentOperator(assignment.Syntax, rewrittenAccess, rewrittenRight, isRef: assignment.IsRef, assignment.Type, used: false));
Lowering\MethodToClassRewriter.cs (4)
485node.IsRef && 522Debug.Assert(!node.IsRef); 523BoundAssignmentOperator rewrittenAssignment = node.Update(rewrittenLeft, tempLocal, node.IsRef, rewrittenType); 533return node.Update(rewrittenLeft, rewrittenRight, node.IsRef, rewrittenType);
Lowering\SpillSequenceSpiller.cs (5)
352if (assignment.IsRef && 373expression = assignment.Update(left, right, assignment.IsRef, assignment.Type); 466IsRef: true, 478IsRef: false, 844return UpdateExpression(builder, node.Update(left, right, node.IsRef, node.Type));
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (1)
315if (node is { IsRef: true, Left: BoundLocal { LocalSymbol: LocalSymbol { IsCompilerGenerated: true } local } })
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (2)
806Debug.Assert(!node.IsRef); 818Debug.Assert(node.IsRef);
Operations\CSharpOperationFactory.cs (1)
1269bool isRef = boundAssignmentOperator.IsRef;