@Override
    public void visitForeachStatement(@NotNull PsiForeachStatement statement) {
      PsiStatement body = statement.getBody();
      if (body == null) return;
      PsiParameter parameter = statement.getIterationParameter();
      Set<PsiVariable> nonFinalVariables = new HashSet<>();
      nonFinalVariables.add(parameter);
      Set<PsiVariable> declaredVariables = new HashSet<>();
      declaredVariables.add(parameter);
      visitLoopBody(body, nonFinalVariables, declaredVariables);
    }
@Override
    public void visitForeachStatement(@NotNull PsiForeachStatement statement)