Hmm... probably worth filing a bug at https://bugs.swift.org 
<https://bugs.swift.org/> then with the below test case.

Alex

> On 22 Sep 2017, at 10:14, Martin R <martinr...@gmail.com> wrote:
> 
> 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 
>> <swift-users@swift.org <mailto:swift-users@swift.org>> 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 
>>> <swift-users@swift.org <mailto:swift-users@swift.org>> 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
>>> swift-users@swift.org <mailto:swift-users@swift.org>
>>> https://lists.swift.org/mailman/listinfo/swift-users 
>>> <https://lists.swift.org/mailman/listinfo/swift-users>
>> 
>> _______________________________________________
>> swift-users mailing list
>> swift-users@swift.org <mailto:swift-users@swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-users
> 

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to