13 instantiations of BoundFieldAccess
Microsoft.CodeAnalysis.CSharp (13)
Binder\Binder_Deconstruct.cs (1)
952return new BoundFieldAccess(syntax,
BoundTree\VariablePendingInference.cs (1)
100return new BoundFieldAccess(this.Syntax,
Compiler\MethodBodySynthesizer.cs (2)
278BoundFieldAccess fieldAccess = new BoundFieldAccess( 380BoundFieldAccess boundBackingField = new BoundFieldAccess(syntax,
Generated\BoundNodes.xml.Generated.cs (1)
7290var result = new BoundFieldAccess(this.Syntax, receiverOpt, fieldSymbol, constantValueOpt, resultKind, isByValue, isDeclaration, type, this.HasErrors);
Lowering\ClosureConversion\ClosureConversion.cs (2)
698BoundExpression left = new BoundFieldAccess(syntax, new BoundLocal(syntax, framePointer, null, frameType), frameParent, null); 1062receiver = new BoundFieldAccess(syntax, null, field, constantValueOpt: null);
Lowering\InitializerRewriter.cs (1)
100new BoundFieldAccess(syntax,
Lowering\LocalRewriter\LocalRewriter_Event.cs (1)
241BoundFieldAccess fieldAccess = new BoundFieldAccess(
Lowering\LocalRewriter\LocalRewriter_Field.cs (1)
33new BoundFieldAccess(syntax, rewrittenReceiver, fieldSymbol, constantValueOpt, resultKind, type);
Lowering\LocalRewriter\LocalRewriter_HostObjectMemberReference.cs (1)
20return new BoundFieldAccess(syntax, thisReference, hostObjectReference, constantValueOpt: null);
Lowering\StateMachineRewriter\CapturedSymbol.cs (2)
43return new BoundFieldAccess(node, frame, field, constantValueOpt: null); 61return new BoundFieldAccess(node, frame, field, constantValueOpt: null);
161 references to BoundFieldAccess
Microsoft.CodeAnalysis.CSharp (161)
Binder\Binder.ValueChecks.cs (13)
827if (receiver is BoundFieldAccess fieldAccess && fieldAccess.FieldSymbol.IsFixedSizeBuffer) 952var fieldAccess = (BoundFieldAccess)expr; 1343private bool CheckFieldValueKind(SyntaxNode node, BoundFieldAccess fieldAccess, BindValueKind valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics) 1506private SafeContext GetFieldRefEscape(BoundFieldAccess fieldAccess, SafeContext localScopeDepth) 1529private bool CheckFieldRefEscape(SyntaxNode node, BoundFieldAccess fieldAccess, SafeContext escapeFrom, SafeContext escapeTo, BindingDiagnosticBag diagnostics) 3504return GetFieldRefEscape((BoundFieldAccess)expr, localScopeDepth); 3829var fieldAccess = (BoundFieldAccess)expr; 4227var fieldAccess = (BoundFieldAccess)expr; 4952var fieldAccess = (BoundFieldAccess)expr;
Binder\Binder_Attributes.cs (2)
815var fa = (BoundFieldAccess)assignment.Left;
Binder\Binder_Expressions.cs (2)
5923var fieldSymbol = ((BoundFieldAccess)boundMember).FieldSymbol; 6178BoundFieldAccess fieldAccess => fieldAccess.FieldSymbol,
Binder\Binder_Invocation.cs (1)
114symbol = ((BoundFieldAccess)boundExpression).FieldSymbol;
Binder\Binder_Operators.cs (3)
3019BoundFieldAccess fieldAccess = (BoundFieldAccess)expr; 3130if (underlyingExpr is BoundFieldAccess fieldAccess && fieldAccess.FieldSymbol.IsFixedSizeBuffer)
Binder\Binder_Statements.cs (2)
1252var fa = (BoundFieldAccess)initializerOpt;
BoundTree\BoundExpressionExtensions.cs (1)
31return ((BoundFieldAccess)node).FieldSymbol.RefKind;
BoundTree\BoundNode_Source.cs (1)
267case BoundFieldAccess fieldAccess:
BoundTree\BoundTreeVisitors.cs (1)
122return VisitFieldAccess(node as BoundFieldAccess, arg);
BoundTree\Constructors.cs (2)
49public BoundFieldAccess Update( 72return ((BoundFieldAccess)receiver).IsByValue;
CodeGen\CodeGenerator_HasHome.cs (2)
109return FieldAccessHasHome((BoundFieldAccess)expression, addressKind, containingSymbol, peVerifyCompatEnabled, stackLocalsOpt); 172BoundFieldAccess fieldAccess,
CodeGen\EmitAddress.cs (5)
53return EmitFieldAddress((BoundFieldAccess)expression, addressKind); 368var fieldAccess = (BoundFieldAccess)value; 436private LocalDefinition EmitFieldAddress(BoundFieldAccess fieldAccess, AddressKind addressKind) 543private LocalDefinition EmitInstanceFieldAddress(BoundFieldAccess fieldAccess, AddressKind addressKind)
CodeGen\EmitExpression.cs (17)
150EmitFieldLoad((BoundFieldAccess)expression, used); 737Debug.Assert(argument.Type.IsDynamic() || argument is BoundFieldAccess { FieldSymbol.RefKind: not RefKind.None }, "passing args byref should not clone them into temps"); 1118private void EmitFieldLoad(BoundFieldAccess fieldAccess, bool used) 1152private void EmitFieldLoadNoIndirection(BoundFieldAccess fieldAccess, bool used) 1244var fieldAccess = (BoundFieldAccess)receiver; 1298var fieldAccess = (BoundFieldAccess)receiver; 1564return ((BoundFieldAccess)receiver).FieldSymbol.IsCapturedFrame; 2139var field = (BoundFieldAccess)current; 2661var fieldAccess = (BoundFieldAccess)left; 2781var left = (BoundFieldAccess)assignmentTarget; 3065EmitFieldStore((BoundFieldAccess)expression, assignment.IsRef); 3273private void EmitFieldStore(BoundFieldAccess fieldAccess, bool refAssign)
CodeGen\EmitStatement.cs (2)
1156var left = (BoundFieldAccess)exceptionSource;
CodeGen\Optimizer.cs (3)
1017right is BoundFieldAccess fieldAccess && 1101return !((BoundFieldAccess)lhs).FieldSymbol.IsStatic; 1338public override BoundNode VisitFieldAccess(BoundFieldAccess node)
Compiler\MethodBodySynthesizer.cs (3)
188var fieldAccess = new BoundFieldAccess(syntax, thisReference, field, ConstantValue.NotAvailable) { WasCompilerGenerated = true }; 278BoundFieldAccess fieldAccess = new BoundFieldAccess( 380BoundFieldAccess boundBackingField = new BoundFieldAccess(syntax,
FlowAnalysis\AbstractFlowPass.cs (3)
586BoundFieldAccess node1 = (BoundFieldAccess)node; 2230public override BoundNode VisitFieldAccess(BoundFieldAccess node)
FlowAnalysis\DataFlowsOutWalker.cs (2)
129var fieldAccess = (BoundFieldAccess)node;
FlowAnalysis\DefiniteAssignment.cs (14)
794var fieldAccess = (BoundFieldAccess)n; 966var fieldAccess = (BoundFieldAccess)n; 1075var fieldAccess = (BoundFieldAccess)expr; 1406var fieldAccess = (BoundFieldAccess)node; 1490var fieldAccess = (BoundFieldAccess)expression; 1519if (!isRef && node is BoundFieldAccess { FieldSymbol.RefKind: not RefKind.None } fieldAccess) 2616var field = (BoundFieldAccess)expr; 2708public override BoundNode VisitFieldAccess(BoundFieldAccess node)
FlowAnalysis\NullableWalker.cs (4)
2046var fieldAccess = (BoundFieldAccess)expr; 10409BoundFieldAccess field => GetFieldAnnotations(field.FieldSymbol), 11062public override BoundNode? VisitFieldAccess(BoundFieldAccess node)
FlowAnalysis\ReadWriteWalker.cs (7)
149NoteReceiverRead((BoundFieldAccess)expr); 153private void NoteReceiverWritten(BoundFieldAccess expr) 163private void NoteReceiverRead(BoundFieldAccess expr) 175private void NoteReceiverReadOrWritten(BoundFieldAccess expr, HashSet<Symbol> readOrWritten) 223NoteReceiverReadOrWritten((BoundFieldAccess)receiver, readOrWritten); 258var fieldAccess = node as BoundFieldAccess;
Generated\BoundNodes.xml.Generated.cs (10)
7286public BoundFieldAccess Update(BoundExpression? receiverOpt, FieldSymbol fieldSymbol, ConstantValue? constantValueOpt, LookupResultKind resultKind, bool isByValue, bool isDeclaration, TypeSymbol type) 7290var result = new BoundFieldAccess(this.Syntax, receiverOpt, fieldSymbol, constantValueOpt, resultKind, isByValue, isDeclaration, type, this.HasErrors); 9252return VisitFieldAccess((BoundFieldAccess)node, arg); 9533public virtual R VisitFieldAccess(BoundFieldAccess node, A arg) => this.DefaultVisit(node, arg); 9769public virtual BoundNode? VisitFieldAccess(BoundFieldAccess node) => this.DefaultVisit(node); 10634public override BoundNode? VisitFieldAccess(BoundFieldAccess node) 12090public override BoundNode? VisitFieldAccess(BoundFieldAccess node) 14598public override BoundNode? VisitFieldAccess(BoundFieldAccess node) 14602BoundFieldAccess updatedNode; 16888public override TreeDumperNode VisitFieldAccess(BoundFieldAccess node, object? arg) => new TreeDumperNode("fieldAccess", null, new TreeDumperNode[]
Lowering\AsyncRewriter\AsyncIteratorMethodToStateMachineRewriter.cs (2)
141BoundFieldAccess promiseField = F.InstanceField(_asyncIteratorInfo.PromiseOfValueOrEndField); 169var combinedTokens = F.Field(F.This(), _asyncIteratorInfo.CombinedTokensField);
Lowering\AsyncRewriter\AsyncRewriter.AsyncIteratorRewriter.cs (2)
234BoundFieldAccess combinedTokens = F.Field(F.This(), _combinedTokensField); 378BoundFieldAccess promiseField = F.InstanceField(_promiseOfValueOrEndField);
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (3)
210var fieldAccess = (BoundFieldAccess)node; 808private BoundExpression VisitFieldAccess(BoundFieldAccess node)
Lowering\DiagnosticsPass_ExpressionTrees.cs (1)
799CheckFieldAddress((BoundFieldAccess)operand, consumerOpt: null);
Lowering\DiagnosticsPass_Warnings.cs (11)
34CheckFieldAddress((BoundFieldAccess)argument, method); 56private void CheckFieldAddress(BoundFieldAccess fieldAccess, Symbol consumerOpt) 80private void CheckFieldAsReceiver(BoundFieldAccess fieldAccess) 99CheckFieldAsReceiver((BoundFieldAccess)receiverOpt); 106internal static bool IsNonAgileFieldAccess(BoundFieldAccess fieldAccess, CSharpCompilation compilation) 133private static bool IsInstanceFieldAccessWithNonThisReceiver(BoundFieldAccess fieldAccess) 208var field1 = (BoundFieldAccess)expr1; 209var field2 = (BoundFieldAccess)expr2; 930public override BoundNode VisitFieldAccess(BoundFieldAccess node)
Lowering\LocalRewriter\DelegateCacheRewriter.cs (1)
53var boundCacheField = _factory.Field(receiver: null, cacheField);
Lowering\LocalRewriter\LocalRewriter.cs (4)
318var result = new BoundFieldAccess(node.Syntax, new BoundThisReference(node.Syntax, primaryCtor.ContainingType), field, ConstantValue.NotAvailable, LookupResultKind.Viable, node.Type); 924var lhsField = ((BoundFieldAccess)assignment.Left).FieldSymbol; 1067var fieldAccess = (BoundFieldAccess)expr;
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (2)
697var fieldAccess = (BoundFieldAccess)originalLHS;
Lowering\LocalRewriter\LocalRewriter_Event.cs (1)
241BoundFieldAccess fieldAccess = new BoundFieldAccess(
Lowering\LocalRewriter\LocalRewriter_Field.cs (2)
11public override BoundNode VisitFieldAccess(BoundFieldAccess node) 24BoundFieldAccess? oldNodeOpt = null)
Lowering\LocalRewriter\LocalRewriter_PointerElementAccess.cs (1)
22if (receiver is BoundFieldAccess fieldAccess && fieldAccess.FieldSymbol.IsFixedSizeBuffer)
Lowering\LocalRewriter\LocalRewriter_StringConcat.cs (1)
714if (expr is BoundFieldAccess fieldAccess)
Lowering\LocalRewriter\LocalRewriter_UnaryOperator.cs (1)
630return !((BoundFieldAccess)expression).FieldSymbol.IsStatic;
Lowering\LocalRewriter\LoweredDynamicOperationFactory.cs (1)
647var callSiteFieldAccess = _factory.Field(null, callSiteField);
Lowering\MethodToClassRewriter.cs (1)
326public override BoundNode VisitFieldAccess(BoundFieldAccess node)
Lowering\SpillSequenceSpiller.cs (7)
405var field = (BoundFieldAccess)expression; 880var field = (BoundFieldAccess)left; 917BoundExpression fieldWithSpilledReceiver(BoundFieldAccess field, ref BoundSpillSequenceBuilder leftBuilder, bool isAssignmentTarget) 948else if (field.ReceiverOpt is BoundFieldAccess receiverField) 1212public override BoundNode VisitFieldAccess(BoundFieldAccess node)
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (2)
242case BoundFieldAccess { FieldSymbol: { IsStatic: false, ContainingType: { IsValueType: true } }, ReceiverOpt: BoundExpression receiver }: 295public override BoundNode VisitFieldAccess(BoundFieldAccess node)
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (3)
608var field = (BoundFieldAccess)expr; 722var replacement = F.Field(F.This(), hoistedField);
Lowering\SyntheticBoundNodeFactory.cs (2)
249public BoundFieldAccess Field(BoundExpression? receiver, FieldSymbol f) 254public BoundFieldAccess InstanceField(FieldSymbol f)
Operations\CSharpOperationFactory.cs (2)
46return CreateBoundFieldAccessOperation((BoundFieldAccess)boundNode); 572internal IOperation CreateBoundFieldAccessOperation(BoundFieldAccess boundFieldAccess, bool createDeclaration = true)
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListEnumeratorTypeSymbol.cs (4)
57var itemFieldReference = f.Field(f.This(), itemField); 69var itemFieldReference = f.Field(f.This(), itemField); 81var moveNextCalledFieldReference = f.Field(f.This(), moveNextCalledField); 100var moveNextCalledFieldReference = f.Field(f.This(), moveNextCalledField);
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListTypeSymbol.cs (7)
476var fieldReference = f.Field(f.This(), field); 508var fieldReference = f.Field(f.This(), field); 560var fieldReference = f.Field(f.This(), field); 596var fieldReference = f.Field(f.This(), field); 653var fieldReference = f.Field(f.This(), field); 687var fieldReference = f.Field(f.This(), field); 737SyntheticBoundNodeFactory f, BoundFieldAccess fieldReference, BoundParameter parameterReference)