27 instantiations of BoundFieldAccess
Microsoft.CodeAnalysis.CSharp (27)
Binder\Binder_Attributes.cs (1)
576lvalue = new BoundFieldAccess(nameSyntax, null, fieldSymbol, ConstantValue.NotAvailable, resultKind, fieldSymbol.Type);
Binder\Binder_Deconstruct.cs (1)
952return new BoundFieldAccess(syntax,
Binder\Binder_Expressions.cs (3)
1496return new BoundFieldAccess(node, implicitReceiver, field, constantValueOpt: null); 3293return new BoundFieldAccess(declarationExpression, 9013BoundExpression expr = new BoundFieldAccess(node, receiver, fieldSymbol, constantValueOpt, resultKind, fieldType, hasErrors: (hasErrors || hasError));
Binder\Binder_Invocation.cs (1)
1480defaultValue = new BoundFieldAccess(syntax, null, fieldSymbol, ConstantValue.NotAvailable) { WasCompilerGenerated = true };
Binder\Binder_Patterns.cs (1)
924variableAccess = new BoundFieldAccess(
BoundTree\VariablePendingInference.cs (1)
100return new BoundFieldAccess(this.Syntax,
Compiler\MethodBodySynthesizer.cs (5)
122new BoundFieldAccess(syntax, thisReference, hostObjectField, ConstantValue.NotAvailable) { WasCompilerGenerated = true }, 150new BoundFieldAccess(syntax, thisReference, field, ConstantValue.NotAvailable) { WasCompilerGenerated = true }, 188var fieldAccess = new BoundFieldAccess(syntax, thisReference, field, ConstantValue.NotAvailable) { WasCompilerGenerated = true }; 278BoundFieldAccess fieldAccess = new BoundFieldAccess( 380BoundFieldAccess boundBackingField = new BoundFieldAccess(syntax,
FlowAnalysis\NullableWalker.cs (1)
11078return fields.SelectAsArray((f, e) => (BoundExpression)new BoundFieldAccess(e.Syntax, e, f, constantValueOpt: null), expr);
Generated\BoundNodes.xml.Generated.cs (1)
7297var 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.cs (1)
318var result = new BoundFieldAccess(node.Syntax, new BoundThisReference(node.Syntax, primaryCtor.ContainingType), field, ConstantValue.NotAvailable, LookupResultKind.Viable, node.Type);
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\LocalRewriter\LocalRewriter_Literal.cs (1)
94return new BoundFieldAccess(syntax, null, fieldSymbol, constantValue);
Lowering\LocalRewriter\LocalRewriter_PreviousSubmissionReference.cs (1)
24return new BoundFieldAccess(syntax, thisReference, targetScriptReference, ConstantValue.NotAvailable);
Lowering\StateMachineRewriter\CapturedSymbol.cs (2)
43return new BoundFieldAccess(node, frame, field, constantValueOpt: null); 61return new BoundFieldAccess(node, frame, field, constantValueOpt: null);
Lowering\SyntheticBoundNodeFactory.cs (1)
251return new BoundFieldAccess(Syntax, receiver, f, ConstantValue.NotAvailable, LookupResultKind.Viable, f.Type) { WasCompilerGenerated = true };
163 references to BoundFieldAccess
Microsoft.CodeAnalysis.CSharp (163)
Binder\Binder.ValueChecks.cs (13)
1051if (receiver is BoundFieldAccess fieldAccess && fieldAccess.FieldSymbol.IsFixedSizeBuffer) 1176var fieldAccess = (BoundFieldAccess)expr; 1567private bool CheckFieldValueKind(SyntaxNode node, BoundFieldAccess fieldAccess, BindValueKind valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics) 1730private SafeContext GetFieldRefEscape(BoundFieldAccess fieldAccess, SafeContext localScopeDepth) 1753private bool CheckFieldRefEscape(SyntaxNode node, BoundFieldAccess fieldAccess, SafeContext escapeFrom, SafeContext escapeTo, BindingDiagnosticBag diagnostics) 3748return GetFieldRefEscape((BoundFieldAccess)expr, localScopeDepth); 4048var fieldAccess = (BoundFieldAccess)expr; 4421var fieldAccess = (BoundFieldAccess)expr; 5109var fieldAccess = (BoundFieldAccess)expr;
Binder\Binder_Attributes.cs (2)
817var fa = (BoundFieldAccess)assignment.Left;
Binder\Binder_Expressions.cs (2)
5952var fieldSymbol = ((BoundFieldAccess)boundMember).FieldSymbol; 6207BoundFieldAccess fieldAccess => fieldAccess.FieldSymbol,
Binder\Binder_Invocation.cs (1)
115symbol = ((BoundFieldAccess)boundExpression).FieldSymbol;
Binder\Binder_Operators.cs (3)
4080BoundFieldAccess fieldAccess = (BoundFieldAccess)expr; 4191if (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)
255case 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); 730Debug.Assert(refKind is RefKind.In || argument.Type.IsDynamic() || argument is BoundFieldAccess { FieldSymbol.RefKind: not RefKind.None }, "passing args byref should not clone them into temps"); 1129private void EmitFieldLoad(BoundFieldAccess fieldAccess, bool used) 1163private void EmitFieldLoadNoIndirection(BoundFieldAccess fieldAccess, bool used) 1255var fieldAccess = (BoundFieldAccess)receiver; 1309var fieldAccess = (BoundFieldAccess)receiver; 1575return ((BoundFieldAccess)receiver).FieldSymbol.IsCapturedFrame; 2166var field = (BoundFieldAccess)current; 2693var fieldAccess = (BoundFieldAccess)left; 2820var left = (BoundFieldAccess)assignmentTarget; 3104EmitFieldStore((BoundFieldAccess)expression, assignment.IsRef); 3312private void EmitFieldStore(BoundFieldAccess fieldAccess, bool refAssign)
CodeGen\EmitStatement.cs (2)
1179var left = (BoundFieldAccess)exceptionSource;
CodeGen\Optimizer.cs (3)
1027right is BoundFieldAccess fieldAccess && 1111return !((BoundFieldAccess)lhs).FieldSymbol.IsStatic; 1348public 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; 2232public override BoundNode VisitFieldAccess(BoundFieldAccess node)
FlowAnalysis\DataFlowsOutWalker.cs (2)
129var fieldAccess = (BoundFieldAccess)node;
FlowAnalysis\DefiniteAssignment.cs (14)
745var fieldAccess = (BoundFieldAccess)n; 917var fieldAccess = (BoundFieldAccess)n; 1026var fieldAccess = (BoundFieldAccess)expr; 1357var fieldAccess = (BoundFieldAccess)node; 1441var fieldAccess = (BoundFieldAccess)expression; 1470if (!isRef && node is BoundFieldAccess { FieldSymbol.RefKind: not RefKind.None } fieldAccess) 2559var field = (BoundFieldAccess)expr; 2655public override BoundNode VisitFieldAccess(BoundFieldAccess node)
FlowAnalysis\NullableWalker.cs (4)
2070var fieldAccess = (BoundFieldAccess)expr; 10708BoundFieldAccess field => GetFieldAnnotations(field.FieldSymbol), 11462public 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)
7293public BoundFieldAccess Update(BoundExpression? receiverOpt, FieldSymbol fieldSymbol, ConstantValue? constantValueOpt, LookupResultKind resultKind, bool isByValue, bool isDeclaration, TypeSymbol type) 7297var result = new BoundFieldAccess(this.Syntax, receiverOpt, fieldSymbol, constantValueOpt, resultKind, isByValue, isDeclaration, type, this.HasErrors); 9259return VisitFieldAccess((BoundFieldAccess)node, arg); 9540public virtual R VisitFieldAccess(BoundFieldAccess node, A arg) => this.DefaultVisit(node, arg); 9776public virtual BoundNode? VisitFieldAccess(BoundFieldAccess node) => this.DefaultVisit(node); 10642public override BoundNode? VisitFieldAccess(BoundFieldAccess node) 12100public override BoundNode? VisitFieldAccess(BoundFieldAccess node) 14594public override BoundNode? VisitFieldAccess(BoundFieldAccess node) 14598BoundFieldAccess updatedNode; 16876public 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)
211var fieldAccess = (BoundFieldAccess)node; 809private BoundExpression VisitFieldAccess(BoundFieldAccess node)
Lowering\DiagnosticsPass_ExpressionTrees.cs (1)
815CheckFieldAddress((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; 1072var fieldAccess = (BoundFieldAccess)expr;
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (2)
770var 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)
761if (expr is BoundFieldAccess fieldAccess)
Lowering\LocalRewriter\LocalRewriter_UnaryOperator.cs (1)
644return !((BoundFieldAccess)expression).FieldSymbol.IsStatic;
Lowering\LocalRewriter\LoweredDynamicOperationFactory.cs (1)
647var callSiteFieldAccess = _factory.Field(null, callSiteField);
Lowering\MethodToClassRewriter.cs (1)
327public override BoundNode VisitFieldAccess(BoundFieldAccess node)
Lowering\SpillSequenceSpiller.cs (7)
405var field = (BoundFieldAccess)expression; 891var field = (BoundFieldAccess)left; 928BoundExpression fieldWithSpilledReceiver(BoundFieldAccess field, ref BoundSpillSequenceBuilder leftBuilder, bool isAssignmentTarget) 959else if (field.ReceiverOpt is BoundFieldAccess receiverField) 1225public override BoundNode VisitFieldAccess(BoundFieldAccess node)
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (2)
261case BoundFieldAccess { FieldSymbol: { IsStatic: false, ContainingType: { IsValueType: true } }, ReceiverOpt: BoundExpression receiver }: 314public override BoundNode VisitFieldAccess(BoundFieldAccess node)
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (3)
99private readonly RefInitializationHoister<StateMachineFieldSymbol, BoundFieldAccess> _refInitializationHoister; 167_refInitializationHoister = new RefInitializationHoister<StateMachineFieldSymbol, BoundFieldAccess>(F, OriginalMethod, TypeMap); 711static BoundFieldAccess createHoistedAccess(StateMachineFieldSymbol fieldSymbol, MethodToStateMachineRewriter @this)
Lowering\StateMachineRewriter\RefInitializationHoister.cs (2)
188var field = (BoundFieldAccess)expr;
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)