On Fri, Mar 13, 2015 at 10:31 PM, Levi Morrison <le...@php.net> wrote:
> On Fri, Mar 13, 2015 at 8:50 PM, Rasmus Lerdorf <ras...@lerdorf.com> wrote:
>> On Mar 14, 2015, at 13:37, Levi Morrison <le...@php.net> wrote:
>>> It seems that `float -> bool` is always disallowed. If I am correct
>>> `int -> bool` is permitted for all values (not just 0 and 1), which
>>> means that floats which can be converted to integers without dataloss
>>> should also be permitted to be booleans. If a specific float can be
>>> converted to an int, and all ints can be converted to booleans, then
>>> the transitive property should hold for that float to a bool.
>>
>> The problem there is what does "without dataloss" mean? At which precision 
>> do you consider there to be no dataloss?
>
> Ah, I reread part of the RFC. It appears `float -> int` is unchanged
> from current. This only confuses me more, though. If int -> float is
> permitted, and float -> int is permitted, I do not understand why
> float -> bool is not permitted.
>
> Can someone clarify this?

I apologize; my hands didn't keep up with my brain. I meant that if
`int -> bool` is permitted, and `float -> int` is permitted, then by
transitive property I would expect `float -> bool` to be permitted.
Can someone clarify why this is not the case? The RFC does not appear
to justify this behavior (that I can find, anyway).

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to