private void visitLoopStatement(@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);
    }
private void visitLoopStatement(@NotNull PsiConditionalLoopStatement loopStatement)