void (@NotNull PsiReferenceExpression expression) { if (read || stop) { return; } final PsiElement target = expression.resolve(); if (variable.equals(target)) { if (PsiUtil.isAccessedForWriting(expression)) { stop = true; return; } if (PsiUtil.isAccessedForReading(expression)) { if (isInLoopCondition(expression)) { stop = true; } else { reference = expression; read = true; } return; } } super.visitReferenceExpression(expression); }