private static boolean isChangedInLoop(@NotNull CountingLoop loop, @NotNull PsiExpression rValue) {
        if (VariableAccessUtils.collectUsedVariables(rValue).contains(loop.getCounter()) ||
            SideEffectChecker.mayHaveSideEffects(rValue)) {
          return true;
        }
        return ExpressionUtils.nonStructuralChildren(rValue)
          .filter(c -> c instanceof PsiCallExpression)
          .anyMatch(call -> !ClassUtils.isImmutable(call.getType()) && !ConstructionUtils.isEmptyArrayInitializer(call));
      }
private static boolean isChangedInLoop(@NotNull CountingLoop loop, @NotNull PsiExpression rValue)