boolean (@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)); }