object OverflowCheck {
val IntMax: Int = Int.MaxValue
val IntMin: Int = Int.MinValue
def addingWillOverflow(x: Int, y: Int): Boolean = {
(x > 0 && y > IntMax - x) || (x < 0 && y < IntMin - x)
}
// Int.MaxValue = 2147483647
def main(args: Array[String]): Unit = {
val x: Int = 39839299
val y: Int = 1472783642
println(if (addingWillOverflow(x, y)) "true" else "false")
val x2: Int = 1939839299
val y2: Int = 1872783642
println(if (addingWillOverflow(x2, y2)) "true" else "false")
}
}
/*
run:
false
true
*/