10 instantiations of BoundArrayAccess
Microsoft.CodeAnalysis.CSharp (10)
Binder\Binder_Expressions.cs (3)
10670return new BoundArrayAccess(node, expr, BuildArgumentsForErrorRecovery(arguments), arrayType.ElementType, hasErrors: true); 10714indexerOrSliceAccess: new BoundArrayAccess(node, receiverPlaceholder, ImmutableArray<BoundExpression>.CastUp(argumentPlaceholders), resultType) { WasCompilerGenerated = true }, 10719return new BoundArrayAccess(node, expr, convertedArguments.AsImmutableOrNull(), resultType);
Compiler\MethodBodySynthesizer.cs (3)
104new BoundArrayAccess(syntax, 124new BoundArrayAccess(syntax, 153new BoundArrayAccess(syntax,
Generated\BoundNodes.xml.Generated.cs (1)
2105var result = new BoundArrayAccess(this.Syntax, expression, indices, type, this.HasErrors);
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (2)
940new BoundArrayAccess( 1120new BoundArrayAccess(forEachSyntax,
Lowering\SyntheticBoundNodeFactory.cs (1)
1240return new BoundArrayAccess(Syntax, array, indices, ((ArrayTypeSymbol)array.Type).ElementType);
88 references to BoundArrayAccess
Microsoft.CodeAnalysis.CSharp (88)
Binder\Binder_Patterns.cs (2)
303Debug.Assert(indexerAccess is BoundIndexerAccess or BoundImplicitIndexerAccess or BoundArrayAccess or BoundBadExpression or BoundDynamicIndexerAccess); 460Debug.Assert(indexerAccess is BoundIndexerAccess or BoundImplicitIndexerAccess or BoundArrayAccess or BoundBadExpression or BoundDynamicIndexerAccess or BoundPointerElementAccess);
Binder\Binder_Statements.cs (4)
1640if (expr is BoundArrayAccess) 1704case BoundCall or BoundArrayAccess: 1756BoundImplicitIndexerAccess { IndexerOrSliceAccess: BoundArrayAccess } => null, 1758BoundArrayAccess => null,
Binder\Binder.ValueChecks.cs (6)
1034return checkArrayAccessValueKind(node, valueKind, ((BoundArrayAccess)expr).Indices, diagnostics); 1129case BoundArrayAccess arrayAccess: 3855case BoundArrayAccess: 4152case BoundArrayAccess: 4504case BoundArrayAccess: 5241case BoundArrayAccess:
BoundTree\BoundDagEvaluation.cs (4)
72case BoundArrayAccess arrayAccess: 76case BoundImplicitIndexerAccess { IndexerOrSliceAccess: BoundArrayAccess arrayAccess }: 225Debug.Assert(IndexerAccess is BoundIndexerAccess or BoundImplicitIndexerAccess or BoundArrayAccess); 262Debug.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)
23Debug.Assert(IndexerAccess is null or BoundIndexerAccess or BoundImplicitIndexerAccess or BoundArrayAccess or BoundBadExpression or BoundDynamicIndexerAccess or BoundPointerElementAccess);
BoundTree\BoundSlicePattern.cs (1)
19Debug.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)
64EmitArrayElementAddress((BoundArrayAccess)expression, addressKind); 433private void EmitArrayElementAddress(BoundArrayAccess arrayAccess, AddressKind addressKind) 456private bool ShouldEmitReadOnlyPrefix(BoundArrayAccess arrayAccess, AddressKind addressKind)
CodeGen\EmitExpression.cs (5)
151EmitArrayElementLoad((BoundArrayAccess)expression, used); 1015private void EmitArrayElementLoad(BoundArrayAccess arrayAccess, bool used) 2921var left = (BoundArrayAccess)assignmentTarget; 3164var array = ((BoundArrayAccess)expression).Expression;
CodeGen\Optimizer.cs (2)
1337public override BoundNode VisitArrayAccess(BoundArrayAccess node) 2259right is BoundArrayAccess arrayAccess &&
FlowAnalysis\AbstractFlowPass.cs (1)
2362public override BoundNode VisitArrayAccess(BoundArrayAccess node)
FlowAnalysis\NullableWalker_Patterns.cs (1)
1017case BoundArrayAccess arrayAccess:
FlowAnalysis\NullableWalker.cs (1)
5363public override BoundNode? VisitArrayAccess(BoundArrayAccess node)
Generated\BoundNodes.xml.Generated.cs (10)
2101public BoundArrayAccess Update(BoundExpression expression, ImmutableArray<BoundExpression> indices, TypeSymbol type) 2105var result = new BoundArrayAccess(this.Syntax, expression, indices, type, this.HasErrors); 9177return VisitArrayAccess((BoundArrayAccess)node, arg); 9609public virtual R VisitArrayAccess(BoundArrayAccess node, A arg) => this.DefaultVisit(node, arg); 9850public virtual BoundNode? VisitArrayAccess(BoundArrayAccess node) => this.DefaultVisit(node); 10239public override BoundNode? VisitArrayAccess(BoundArrayAccess node) 11433public override BoundNode? VisitArrayAccess(BoundArrayAccess node) 13387public override BoundNode? VisitArrayAccess(BoundArrayAccess node) 13391BoundArrayAccess updatedNode; 15938public override TreeDumperNode VisitArrayAccess(BoundArrayAccess node, object? arg) => new TreeDumperNode("arrayAccess", null, new TreeDumperNode[]
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (2)
188return VisitArrayAccess((BoundArrayAccess)node); 298private 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_Call.cs (7)
704(rewrittenReceiver is not BoundArrayAccess { Expression.Type: var arrayType } || IsInvariantArray(arrayType)))); 721rewrittenReceiver is BoundArrayAccess { Expression.Type: var arrayType } && 761rewrittenReceiver is BoundArrayAccess arrayAccess && 1004(rewrittenReceiver is not BoundArrayAccess { Expression.Type: var arrayType } || IsInvariantArray(arrayType)))); 1071Debug.Assert(receiver is BoundArrayAccess { Type.IsReferenceType: false } or BoundLocal); 1072Debug.Assert(receiver is not BoundArrayAccess { Expression: var array, Indices: var indices } || 1108Debug.Assert(receiver is BoundArrayAccess);
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (7)
303(rewrittenReceiver is not BoundArrayAccess { Expression.Type: var arrayType } || IsInvariantArray(arrayType)))); 318rewrittenReceiver is BoundArrayAccess { Expression.Type: var arrayType } && 342rewrittenReceiver is BoundArrayAccess arrayAccess && 611var arrayAccess = (BoundArrayAccess)access; 823var arrayAccess = (BoundArrayAccess)originalLHS;
Lowering\LocalRewriter\LocalRewriter_IndexerAccess.cs (6)
543Debug.Assert(node.IndexerOrSliceAccess is BoundIndexerAccess or BoundArrayAccess); 572receiver is BoundArrayAccess arrayAccess && 623Debug.Assert(capturedReceiver is BoundArrayAccess); 725rewrittenIndexerAccess = (BoundExpression)VisitArrayAccess((BoundArrayAccess)node.IndexerOrSliceAccess); 915receiver is BoundArrayAccess arrayAccess && 984Debug.Assert(capturedReceiver is BoundArrayAccess);
Lowering\LocalRewriter\LocalRewriter_ObjectOrCollectionInitializerExpression.cs (4)
436var rewrittenArrayAccess = VisitArrayAccess((BoundArrayAccess)left); 439if (rewrittenArrayAccess is BoundArrayAccess arrayAccess) 559or BoundArrayAccess 595else if (lhs is BoundArrayAccess arrayAccess)
Lowering\LocalRewriter\LocalRewriter.cs (1)
827public override BoundNode VisitArrayAccess(BoundArrayAccess node)
Lowering\SpillSequenceSpiller.cs (9)
584else if (valueTypeReceiver is BoundArrayAccess valueTypeReceiverArrayAccess 585&& originalReceiver is BoundArrayAccess originalReceiverArrayAccess 842public override BoundNode VisitArrayAccess(BoundArrayAccess node) 955var arrayAccess = (BoundArrayAccess)left; 998else if (field.ReceiverOpt is BoundArrayAccess arrayAccess) 1029private BoundArrayAccess SpillArrayAccessConstituentParts(ref BoundSpillSequenceBuilder builder, BoundArrayAccess arrayAccess) 1107receiver is BoundArrayAccess arrayAccess &&
Lowering\StateMachineRewriter\RefInitializationHoister.cs (2)
151var array = (BoundArrayAccess)expr;
Lowering\SyntheticBoundNodeFactory.cs (3)
1224public BoundArrayAccess ArrayAccessFirstElement(BoundExpression array) 1232public BoundArrayAccess ArrayAccess(BoundExpression array, params BoundExpression[] indices) 1237public BoundArrayAccess ArrayAccess(BoundExpression array, ImmutableArray<BoundExpression> indices)
Operations\CSharpOperationFactory.cs (2)
138return CreateBoundArrayAccessOperation((BoundArrayAccess)boundNode); 1709private IArrayElementReferenceOperation CreateBoundArrayAccessOperation(BoundArrayAccess boundArrayAccess)