[External] : Re: Enhancing java.lang.constant for Valhalla

Brian Goetz brian.goetz at oracle.com
Thu Dec 16 20:57:41 UTC 2021



> If the preload() bit is tied to the ClassDesc, do we need to worry
> about a bit mask in MethodTypeDesc?  Isn't the MethodTypeDesc composed
> of ClassDesc returnType and ClassDesc[] of parameters?  I feel like
> I'm missing some complexity here...

That's how the implementation happens to work, but conceptually, a 
MethodType has N+1 descriptors and N pre-load bits.  (Its convenient 
that the the implementation works in terms of ClassDesc.)

>
>> Also, how would this affect ClassDesc::equals?  Would LFoo and L*Foo be equal?
> I think they'd have to be equal as they represent the same descriptor.
> It's only the presence of side channel info - the star - that makes
> them different and the difference is only in the "go and look"
> behaviour.  The VM will treat them as identical when dealing with
> descriptor strings.
>

Which makes me ask ... if it really is a side channel, does it really go 
*in* the ClassDesc?


More information about the valhalla-spec-observers mailing list