Real implicitly converts to float?

Tofu Ninja via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Jun 22 21:55:09 PDT 2016


On Wednesday, 22 June 2016 at 14:17:42 UTC, Jonathan M Davis 
wrote:
> Well, that particular value should probably work thanks to VRP 
> (value range propagation), since 10 can fit into float with no 
> loss of precision. However, what's far more disconcerting is 
> that
>
> real x = real.max;
> float y = x;
>
> compiles. real to float is a narrowing conversion, which should 
> be an error barring the compiler detecting that the value will 
> fit in the target type even if it's a narrowing conversion 
> (which only happens with VRP). That's not the sort of thing 
> that I would have expected to be broken such that it begs the 
> question as to whether it's intentional, but given that 
> narrowing conversions without a cast are illegal everywhere 
> else, this definitely seems broken.
>
> - Jonathan M Davis

Should I make a bug report? I am not sure it's a bug, seems 
intentional. Maybe a dip for a compiler flag to warn on implicit 
down conversions, but it would be a pretty small dip.


More information about the Digitalmars-d-learn mailing list