ArrayAccessExprContext

Required to prevent recursive access to the "parent node" (not necessarily the same as the "parent context").

Consider, for example, this code where the cursor is currently at the node of type ArrayAccessExpr:


    var1.perPriority[index].recovered
    ^^^^^^^^^^^^^^^^^^^^^^^             - ArrayAccessExpr

The AST for this snippet:


                           FieldAccessExpr                       // This FieldAccessExpr is accessing the field `recovered`
                            /           \
              **ArrayAccessExpr**      SimpleName(recovered)
                 /          \
         FieldAccessExpr  NameExpr(index)                        // This FieldAccessExpr is accessing the field `perPriority`
           /         \
   NameExpr(var1)   SimpleName (perPriority)

In this example:

  • The parent node for ArrayAccessExpr is FieldAccessExpr (variable1.perPriority[index].recovered).
    
        // "Parent Node" of the ArrayAccessExpr
        var.perPriority[index].recovered
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   - FieldAccessExpr
        ^^^^^^^^^^^^^^^^^^^^^^             - ArrayAccessExpr
                               ^^^^^^^^^   - SimpleName
    
  • The parent context is the FieldAccessExpr to the left of the outer array-access, which is actually a child node.
    
    
        // "Parent Context" of the ArrayAccessExpr
        var1.perPriority[index].recovered
        ^^^^^^^^^^^^^^^^^^^^^^^             - ArrayAccessExpr
        ^^^^^^^^^^^^^^^^                    - FieldAccessExpr
                         ^^^^^              - NameExpr
    

Author

Roger Howell

Constructors

Link copied to clipboard
constructor(wrappedNode: ArrayAccessExpr, typeSolver: TypeSolver)

Functions

Link copied to clipboard
open fun equals(o: Any): Boolean
Public methods
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
abstract fun <N : Node?> getWrappedNode(): N
open fun getWrappedNode(): N
Link copied to clipboard
open fun hashCode(): Int
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open fun solveMethod(name: String, argumentsTypes: List<ResolvedType>, staticOnly: Boolean, invocationContext: ResolvedReferenceTypeDeclaration): SymbolReference<ResolvedMethodDeclaration>
Link copied to clipboard
abstract fun solveMethodAsUsage(name: String, argumentsTypes: List<ResolvedType>, invocationContext: ResolvedReferenceTypeDeclaration): Optional<MethodUsage>

open fun solveMethodAsUsage(name: String, argumentsTypes: List<ResolvedType>, invocationContext: ResolvedReferenceTypeDeclaration): Optional<MethodUsage>
Similar to solveMethod but we return a MethodUsage.
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Static methods
Link copied to clipboard
Link copied to clipboard
When looking for a variable declaration in a pattern expression, there are 2 cases: 1.