void (Object result, Object lOperandValue, Object rOperandValue, PsiElement expression) { if (!myThrowExceptionOnOverflow) return; if (lOperandValue instanceof Float && ((Float) lOperandValue).isInfinite()) return; if (lOperandValue instanceof Double && ((Double) lOperandValue).isInfinite()) return; if (rOperandValue instanceof Float && ((Float) rOperandValue).isInfinite()) return; if (rOperandValue instanceof Double && ((Double) rOperandValue).isInfinite()) return; if (result instanceof Float && ((Float)result).isInfinite()) throw new ConstantEvaluationOverflowException(expression); if (result instanceof Double && ((Double)result).isInfinite()) throw new ConstantEvaluationOverflowException(expression); }