void (@NotNull PsiConditionalLoopStatement loopStatement) { PsiStatement body = loopStatement.getBody(); if (body == null) return; Set<PsiVariable> nonFinalVariables = new HashSet<>(); Set<PsiVariable> declaredVariables = new HashSet<>(); PsiExpression condition = loopStatement.getCondition(); if (condition != null) { if (mayHaveOutsideOfLoopSideEffects(condition, declaredVariables)) return; Set<PsiVariable> conditionVariables = VariableAccessUtils.collectUsedVariables(condition); declaredVariables.addAll(conditionVariables); nonFinalVariables.addAll(conditionVariables); } visitLoopBody(body, nonFinalVariables, declaredVariables); }