But the purpose of
func dividedReportingOverflow(by other: Int
<apple-reference-documentation://hsf4N66ABq>) -> (partialValue: Int
<apple-reference-documentation://hsf4N66ABq>, overflow: Bool
<apple-reference-documentation://hsvynwdxKM>)
is to report an overflow in the return value. And actually this compiles and
runs in Xcode 9 if the code is on top-level in main.m:
let minusOne = -1
let r1 = Int.min.dividedReportingOverflow(by: minusOne)
print(r1) // (partialValue: -9223372036854775808, overflow: true)
let zero = 0
let r2 = Int.min.dividedReportingOverflow(by: zero)
print(r2) // (partialValue: -9223372036854775808, overflow: true)
But the same code inside a function (or do-block) fails to compile:
func foo() {
let minusOne = -1
let r1 = Int.min.dividedReportingOverflow(by: minusOne)
// error: division '-9223372036854775808 / -1' results in an overflow
print(r1)
let zero = 0
let r2 = Int.min.dividedReportingOverflow(by: zero)
// error: division by zero
print(r2)
}
Martin
> On 22. Sep 2017, at 10:19, Alex Blewitt via swift-users
> <[email protected]> wrote:
>
> Int.min is the smallest negative value, and Int.max is the largest positive
> value (that fits in an Int). However, the absolute value of Int.min is larger
> than the absolute value of Int.max. So you can't convert Int.min into
> -Int.min because it's larger than Int.max.
>
> In other words, this is expected behaviour :)
>
> For example:
>
> Int.min + Int.max = 1
>
> If they were the same value, it would be zero.
>
> Alex
>
>> On 22 Sep 2017, at 02:42, Peter W A Wood via swift-users
>> <[email protected] <mailto:[email protected]>> wrote:
>>
>> Entering the following statement in a playground gives an overflow error.
>> Where should I report this?
>>
>> Statement:
>>
>> Int.min.dividedReportingOverflow(by:-1)
>>
>> Playground log:
>>
>> Playground execution failed:
>>
>> error: MyPlayground.playground:3:9: error: division '-9223372036854775808 /
>> -1' results in an overflow
>> Int.min.dividedReportingOverflow(by:-1)
>>
>> Peter
>> _______________________________________________
>> swift-users mailing list
>> [email protected] <mailto:[email protected]>
>> https://lists.swift.org/mailman/listinfo/swift-users
>
> _______________________________________________
> swift-users mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-users
_______________________________________________
swift-users mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-users