void (PsiExpression expression, TypeOccurence occurence, PsiElement referencedElement) { if(!(occurence.outermostType instanceof PsiArrayType)) { processNonArrayExpression(myVisitor, expression, referencedElement); } else { PsiType type = occurence.outermostType; PsiExpression result = CommonJavaRefactoringUtil.outermostParenthesizedExpression(expression); while(type instanceof PsiArrayType && result.getParent() instanceof PsiArrayAccessExpression) { type = ((PsiArrayType) type).getComponentType(); result = CommonJavaRefactoringUtil.outermostParenthesizedExpression((PsiArrayAccessExpression) result.getParent()); } if(!(type instanceof PsiArrayType)) { processNonArrayExpression(myVisitor, result, referencedElement); } } }