6 instantiations of BoundArrayAccess
Microsoft.CodeAnalysis.CSharp (6)
Binder\Binder_Expressions.cs (2)
9337return new BoundArrayAccess(node, expr, BuildArgumentsForErrorRecovery(arguments), arrayType.ElementType, hasErrors: true); 9381indexerOrSliceAccess: new BoundArrayAccess(node, receiverPlaceholder, ImmutableArray<BoundExpression>.CastUp(argumentPlaceholders), resultType) { WasCompilerGenerated = true },
Generated\BoundNodes.xml.Generated.cs (1)
2072var result = new BoundArrayAccess(this.Syntax, expression, indices, type, this.HasErrors);
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (2)
941new BoundArrayAccess( 1121new BoundArrayAccess(forEachSyntax,
Lowering\SyntheticBoundNodeFactory.cs (1)
1180return new BoundArrayAccess(Syntax, array, indices, ((ArrayTypeSymbol)array.Type).ElementType);
76 references to BoundArrayAccess
Microsoft.CodeAnalysis.CSharp (76)
Binder\Binder.ValueChecks.cs (6)
771return checkArrayAccessValueKind(node, valueKind, ((BoundArrayAccess)expr).Indices, diagnostics); 866case BoundArrayAccess arrayAccess: 3500case BoundArrayAccess: 3817case BoundArrayAccess: 4201case BoundArrayAccess: 4934case BoundArrayAccess:
Binder\Binder_Patterns.cs (2)
240Debug.Assert(indexerAccess is BoundIndexerAccess or BoundImplicitIndexerAccess or BoundArrayAccess or BoundBadExpression or BoundDynamicIndexerAccess); 389Debug.Assert(indexerAccess is BoundIndexerAccess or BoundImplicitIndexerAccess or BoundArrayAccess or BoundBadExpression or BoundDynamicIndexerAccess);
Binder\Binder_Statements.cs (4)
1608if (expr is BoundArrayAccess) 1662case BoundCall or BoundArrayAccess: 1714BoundImplicitIndexerAccess { IndexerOrSliceAccess: BoundArrayAccess } => null, 1716BoundArrayAccess => null,
BoundTree\BoundDagEvaluation.cs (4)
56case BoundArrayAccess arrayAccess: 60case BoundImplicitIndexerAccess { IndexerOrSliceAccess: BoundArrayAccess arrayAccess }: 131Debug.Assert(IndexerAccess is BoundIndexerAccess or BoundImplicitIndexerAccess or BoundArrayAccess); 147Debug.Assert(IndexerAccess is BoundIndexerAccess or BoundImplicitIndexerAccess or BoundArrayAccess);
BoundTree\BoundImplicitIndexerAccess.cs (1)
21Debug.Assert(IndexerOrSliceAccess is BoundIndexerAccess or BoundCall or BoundArrayAccess);
BoundTree\BoundListPattern.cs (1)
15Debug.Assert(IndexerAccess is null or BoundIndexerAccess or BoundImplicitIndexerAccess or BoundArrayAccess or BoundBadExpression or BoundDynamicIndexerAccess);
BoundTree\BoundSlicePattern.cs (1)
13Debug.Assert(IndexerAccess is null or BoundIndexerAccess or BoundImplicitIndexerAccess or BoundArrayAccess or BoundBadExpression or BoundDynamicIndexerAccess);
BoundTree\BoundTreeVisitors.cs (1)
52return VisitArrayAccess(node as BoundArrayAccess, arg);
CodeGen\EmitAddress.cs (3)
61EmitArrayElementAddress((BoundArrayAccess)expression, addressKind); 393private void EmitArrayElementAddress(BoundArrayAccess arrayAccess, AddressKind addressKind) 416private bool ShouldEmitReadOnlyPrefix(BoundArrayAccess arrayAccess, AddressKind addressKind)
CodeGen\EmitExpression.cs (5)
154EmitArrayElementLoad((BoundArrayAccess)expression, used); 1009private void EmitArrayElementLoad(BoundArrayAccess arrayAccess, bool used) 2863var left = (BoundArrayAccess)assignmentTarget; 3096var array = ((BoundArrayAccess)expression).Expression;
CodeGen\Optimizer.cs (2)
1326public override BoundNode VisitArrayAccess(BoundArrayAccess node) 2192right is BoundArrayAccess arrayAccess &&
FlowAnalysis\AbstractFlowPass.cs (1)
2354public override BoundNode VisitArrayAccess(BoundArrayAccess node)
FlowAnalysis\NullableWalker.cs (1)
4839public override BoundNode? VisitArrayAccess(BoundArrayAccess node)
FlowAnalysis\NullableWalker_Patterns.cs (1)
853BoundArrayAccess arrayAccess => isSlice
Generated\BoundNodes.xml.Generated.cs (17)
2068public BoundArrayAccess Update(BoundExpression expression, ImmutableArray<BoundExpression> indices, TypeSymbol type) 2072var result = new BoundArrayAccess(this.Syntax, expression, indices, type, this.HasErrors); 2082public BoundRefArrayAccess(SyntaxNode syntax, BoundArrayAccess arrayAccess, bool hasErrors = false) 2092public BoundArrayAccess ArrayAccess { get; } 2097public BoundRefArrayAccess Update(BoundArrayAccess arrayAccess) 8966return VisitArrayAccess((BoundArrayAccess)node, arg); 9389public virtual R VisitArrayAccess(BoundArrayAccess node, A arg) => this.DefaultVisit(node, arg); 9625public virtual BoundNode? VisitArrayAccess(BoundArrayAccess node) => this.DefaultVisit(node); 10005public override BoundNode? VisitArrayAccess(BoundArrayAccess node) 11133public override BoundNode? VisitArrayAccess(BoundArrayAccess node) 11142BoundArrayAccess arrayAccess = (BoundArrayAccess)this.Visit(node.ArrayAccess); 12936public override BoundNode? VisitArrayAccess(BoundArrayAccess node) 12940BoundArrayAccess updatedNode; 12956BoundArrayAccess arrayAccess = (BoundArrayAccess)this.Visit(node.ArrayAccess); 15450public override TreeDumperNode VisitArrayAccess(BoundArrayAccess node, object? arg) => new TreeDumperNode("arrayAccess", null, new TreeDumperNode[]
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (2)
184return VisitArrayAccess((BoundArrayAccess)node); 291private BoundExpression VisitArrayAccess(BoundArrayAccess node)
Lowering\DiagnosticsPass_ExpressionTrees.cs (1)
89public override BoundNode VisitArrayAccess(BoundArrayAccess node)
Lowering\Instrumentation\CodeCoverageInstrumenter.cs (1)
515BoundArrayAccess payloadCell =
Lowering\LocalRewriter\LocalRewriter.cs (1)
817public override BoundNode VisitArrayAccess(BoundArrayAccess node)
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (4)
439var arrayAccess = (BoundArrayAccess)access; 651var arrayAccess = (BoundArrayAccess)originalLHS;
Lowering\LocalRewriter\LocalRewriter_IndexerAccess.cs (2)
480Debug.Assert(node.IndexerOrSliceAccess is BoundIndexerAccess or BoundArrayAccess); 622rewrittenIndexerAccess = (BoundExpression)VisitArrayAccess((BoundArrayAccess)node.IndexerOrSliceAccess);
Lowering\LocalRewriter\LocalRewriter_ObjectOrCollectionInitializerExpression.cs (4)
403var rewrittenArrayAccess = VisitArrayAccess((BoundArrayAccess)left); 406if (rewrittenArrayAccess is BoundArrayAccess arrayAccess) 525or BoundArrayAccess 561else if (lhs is BoundArrayAccess arrayAccess)
Lowering\SpillSequenceSpiller.cs (4)
776public override BoundNode VisitArrayAccess(BoundArrayAccess node) 889var arrayAccess = (BoundArrayAccess)left; 935else if (field.ReceiverOpt is BoundArrayAccess arrayAccess)
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (2)
587var array = (BoundArrayAccess)expr;
Lowering\SyntheticBoundNodeFactory.cs (3)
1164public BoundArrayAccess ArrayAccessFirstElement(BoundExpression array) 1172public BoundArrayAccess ArrayAccess(BoundExpression array, params BoundExpression[] indices) 1177public BoundArrayAccess ArrayAccess(BoundExpression array, ImmutableArray<BoundExpression> indices)
Operations\CSharpOperationFactory.cs (2)
139return CreateBoundArrayAccessOperation((BoundArrayAccess)boundNode); 1624private IArrayElementReferenceOperation CreateBoundArrayAccessOperation(BoundArrayAccess boundArrayAccess)