1 write to ReceiverOpt
Microsoft.CodeAnalysis.CSharp (1)
Generated\BoundNodes.xml.Generated.cs (1)
7383this.ReceiverOpt = receiverOpt;
76 references to ReceiverOpt
Microsoft.CodeAnalysis.CSharp (76)
Binder\Binder_Operators.cs (2)
4203receiver = fieldAccess.ReceiverOpt; 4314expr = fieldAccess.ReceiverOpt;
Binder\Binder.ValueChecks.cs (13)
1066return CheckValueKind(node, fieldAccess.ReceiverOpt, valueKind, checkingReceiver: true, diagnostics); 1625!CanModifyReadonlyField(fieldAccess.ReceiverOpt is BoundThisReference, fieldSymbol)) 1667Debug.Assert(fieldAccess.ReceiverOpt is null or BoundTypeExpression); 1672Debug.Assert(fieldAccess.ReceiverOpt is not null); 1673return CheckIsValidReceiverForVariable(node, fieldAccess.ReceiverOpt, BindValueKind.Assignable, diagnostics); 1702return CheckIsValidReceiverForVariable(node, fieldAccess.ReceiverOpt, valueKind, diagnostics); 1789return GetValEscape(fieldAccess.ReceiverOpt); 1794return GetRefEscape(fieldAccess.ReceiverOpt); 1806Debug.Assert(fieldAccess.ReceiverOpt is { }); 1813return CheckValEscape(node, fieldAccess.ReceiverOpt, escapeTo, checkingReceiver: true, diagnostics); 1818return CheckRefEscape(node, fieldAccess.ReceiverOpt, escapeTo, checkingReceiver: true, diagnostics: diagnostics); 4456return GetValEscape(fieldAccess.ReceiverOpt); 5172return CheckValEscape(node, fieldAccess.ReceiverOpt, escapeTo, true, diagnostics);
CodeGen\CodeGenerator_HasHome.cs (2)
292var receiver = fieldAccess.ReceiverOpt; 321fieldAccess.ReceiverOpt.Kind == BoundKind.ThisReference;
CodeGen\EmitAddress.cs (2)
411var receiver = fieldAccess.ReceiverOpt; 597fieldAccess.ReceiverOpt,
CodeGen\EmitExpression.cs (7)
1137if (!field.IsVolatile && !field.IsStatic && fieldAccess.ReceiverOpt.Type.IsVerifierValue() && field.RefKind == RefKind.None) 1139EmitExpression(fieldAccess.ReceiverOpt, used: false); 1174var receiver = fieldAccess.ReceiverOpt; 1252if (!field.IsStatic && EmitFieldLoadReceiverAddress(fieldAccess.ReceiverOpt)) 1316return FieldLoadPrefersRef(fieldAccess.ReceiverOpt); 2185current = field.ReceiverOpt; 2848var temp = EmitReceiverRef(left.ReceiverOpt, AddressKind.Writeable);
CodeGen\EmitStatement.cs (2)
1181Debug.Assert(!left.ReceiverOpt.Type.IsTypeParameter()); 1195var receiverTemp = EmitReceiverRef(left.ReceiverOpt, AddressKind.Writeable);
CodeGen\Optimizer.cs (1)
1353var receiver = node.ReceiverOpt;
FlowAnalysis\AbstractFlowPass.cs (2)
588VisitFieldAccessInternal(node1.ReceiverOpt, node1.FieldSymbol); 2234VisitFieldAccessInternal(node.ReceiverOpt, node.FieldSymbol);
FlowAnalysis\DefiniteAssignment.cs (11)
748if (MayRequireTracking(fieldAccess.ReceiverOpt, fieldAccess.FieldSymbol)) 750n = fieldAccess.ReceiverOpt; 927if (MayRequireTracking(fieldAccess.ReceiverOpt, fieldAccess.FieldSymbol)) 929n = fieldAccess.ReceiverOpt; 1038receiver = fieldAccess.ReceiverOpt; 1359if (!MayRequireTracking(fieldAccess.ReceiverOpt, fieldAccess.FieldSymbol) || IsAssigned(fieldAccess.ReceiverOpt, out unassignedSlot)) 1446expression = fieldAccess.ReceiverOpt; 2594if (!symbol.IsFixedSizeBuffer && MayRequireTracking(field.ReceiverOpt, symbol)) 2695Symbol receiver = UseNonFieldSymbolUnsafely(node.ReceiverOpt); 2705else if (MayRequireTracking(node.ReceiverOpt, node.FieldSymbol))
FlowAnalysis\NullableWalker.cs (2)
2143receiver = fieldAccess.ReceiverOpt; 12198var updatedSymbol = VisitMemberAccess(node, node.ReceiverOpt, node.FieldSymbol);
FlowAnalysis\ReadWriteWalker.cs (1)
179var receiver = expr.ReceiverOpt;
Generated\BoundNodes.xml.Generated.cs (5)
7404if (receiverOpt != this.ReceiverOpt || !Symbols.SymbolEqualityComparer.ConsiderEverything.Equals(fieldSymbol, this.FieldSymbol) || constantValueOpt != this.ConstantValueOpt || resultKind != this.ResultKind || isByValue != this.IsByValue || isDeclaration != this.IsDeclaration || !TypeSymbol.Equals(type, this.Type, TypeCompareKind.ConsiderEverything)) 10889this.Visit(node.ReceiverOpt); 12379BoundExpression? receiverOpt = (BoundExpression?)this.Visit(node.ReceiverOpt); 14911BoundExpression? receiverOpt = (BoundExpression?)this.Visit(node.ReceiverOpt); 17250new TreeDumperNode("receiverOpt", null, new TreeDumperNode[] { Visit(node.ReceiverOpt, null) }),
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (1)
830var receiver = node.FieldSymbol.IsStatic ? _bound.Null(ExpressionType) : Visit(node.ReceiverOpt);
Lowering\DiagnosticsPass_Warnings.cs (4)
135BoundExpression receiver = fieldAccess.ReceiverOpt; 211(field1.FieldSymbol.IsStatic || IsSameLocalOrField(field1.ReceiverOpt, field2.ReceiverOpt)); 931CheckReceiverIfField(node.ReceiverOpt);
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (1)
812BoundExpression? receiverOpt = fieldAccess.ReceiverOpt;
Lowering\LocalRewriter\LocalRewriter_Field.cs (1)
13BoundExpression? rewrittenReceiver = VisitExpression(node.ReceiverOpt);
Lowering\LocalRewriter\LocalRewriter_PointerElementAccess.cs (1)
24var loweredFieldReceiver = VisitExpression(fieldAccess.ReceiverOpt);
Lowering\LocalRewriter\LocalRewriter.cs (4)
1082Debug.Assert(fieldAccess.ReceiverOpt is { }); 1083Debug.Assert(fieldAccess.ReceiverOpt.Type is { }); 1084return !fieldAccess.ReceiverOpt.Type.IsValueType || CanBePassedByReference(fieldAccess.ReceiverOpt);
Lowering\MethodToClassRewriter.cs (1)
331var receiverOpt = (BoundExpression?)this.Visit(node.ReceiverOpt);
Lowering\SpillSequenceSpiller.cs (7)
419var receiver = Spill(builder, field.ReceiverOpt, fieldSymbol.ContainingType.IsValueType ? refKind : RefKind.None); 985Debug.Assert(field.ReceiverOpt is object); 990receiver = Spill(leftBuilder, VisitExpression(ref leftBuilder, field.ReceiverOpt)); 998else if (field.ReceiverOpt is BoundArrayAccess arrayAccess) 1008else if (field.ReceiverOpt is BoundFieldAccess receiverField) 1014receiver = Spill(leftBuilder, VisitExpression(ref leftBuilder, field.ReceiverOpt), RefKind.Ref); 1299var receiver = VisitExpression(ref builder, node.ReceiverOpt);
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (3)
261case BoundFieldAccess { FieldSymbol: { IsStatic: false, ContainingType: { IsValueType: true } }, ReceiverOpt: BoundExpression receiver }: 316if (node.ReceiverOpt != null && node.ReceiverOpt.Kind == BoundKind.ThisReference)
Lowering\StateMachineRewriter\RefInitializationHoister.cs (2)
195Debug.Assert(field.ReceiverOpt != null); 205field.ReceiverOpt,
Operations\CSharpOperationFactory.cs (1)
598IOperation? instance = CreateReceiverOperation(boundFieldAccess.ReceiverOpt, boundFieldAccess.FieldSymbol);