Question on layer/peeling
Brian Goetz
brian.goetz at oracle.com
Tue Jan 6 22:43:59 UTC 2015
I think Timo is just a little confused here. (If it was a non-any-fied
HashMap, we'd never specialize, you'd just get the today behavior, and
the question is moot.)
On 1/6/2015 5:35 PM, Vitaly Davidovich wrote:
> I'm confused - are we talking about an any-fied hashmap or current
> hashmap? If the former, the null comparison will always be false and
> without having a default (T)/T.null/whatever, I'd expect a box operation
> to occur for the null check.
>
> Sent from my phone
>
> On Jan 6, 2015 5:32 PM, "Brian Goetz" <brian.goetz at oracle.com
> <mailto:brian.goetz at oracle.com>> wrote:
>
> But bytecodes are supplemented by the BytecodeMapping attribute,
> which reify the (static) instantiated type (as outlined in the SotS
> writeup, and which you can see by running javap on a class compiled
> with the valhalla compiler.)
>
> On 1/6/2015 5:14 PM, Timo Kinnunen wrote:
>
> The type in bytecode will be Object, but the type in source code
> will be V, with V=boxed complex number, for example. The idiom
> I’m thinking of is
>
>
> Complex complex = numbers.get(nonexistentKey);
>
> if(complex == null) return;
>
> calculate(complex.re <http://complex.re>, complex.im
> <http://complex.im>);
>
>
>
>
>
>
> (Complex is a value type, numbers is a Java 5 hash map)
>
>
More information about the valhalla-dev
mailing list