boolean (PsiExpression expr, @NotNull Project project) { if (!TypeConversionUtil.isNumericType(expr.getType())) { return false; } boolean result = false; boolean toStoreInParent = false; try { if (expr.getUserData(HAS_OVERFLOW_IN_CHILD) == null) { JavaPsiFacade.getInstance(project).getConstantEvaluationHelper().computeConstantExpression(expr, true); } else { toStoreInParent = true; expr.putUserData(HAS_OVERFLOW_IN_CHILD, null); } } catch (ConstantEvaluationOverflowException e) { result = toStoreInParent = true; } finally { PsiElement parent = expr.getParent(); if (toStoreInParent && parent instanceof PsiExpression) { parent.putUserData(HAS_OVERFLOW_IN_CHILD, ""); } } return result; }