On Thursday, 8 March 2018 00:02:58 UTC+1, Ian Lance Taylor wrote:
>
>
> If we ignore the type context, then 
>
> var v int64 = 1 << s 
>
> fails on 32-bit systems if s > 31 (because 1 is assigned type int, 
> which is 32 bits, and the shifting a 32-bit value by more than 31 bits 
> gives you zero). 
>
> If we don't ignore the type context, then in 
>
> var v float32 = 1 << s 
>
> fails because we can't shift a float32. 
>
>
Thanks! This explanation is very clear. The spec already contains
an example of this rule: var k = uint64(1<<s). Maybe it would be
good to add di...'s example as an illegal shift example too?

V.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to