We don't need no stinkin' Q descriptors
Brian Goetz
brian.goetz at oracle.com
Thu Jul 27 20:37:51 UTC 2023
>
> I was also wondering about how this will be expressed in MethodHandles
> if we don't differentiate Q from L any more.... It means we don't have
> a java.lang.Class for the "Q" flavour so we can't use MethodTypes to
> differentiate any more (and that includes losing asType /
> castArguments to do casts). Would we need to add a new MH combinator
> to handle RefinementType casts?
I'll let John speak to the classfile-encoding-of-refinements.
But yes, you have it right -- we'd add a MH combinator for refinement
type casts / anewarray. This aligns MHs with how bytecoded methods
work; we don't have restrictions for method parmeters/returns (yet)
either. Our experiments suggested that the cost of the extra null
channel for scalarizing LFoo vs QFoo was pretty much negligible (some
extra register pressure).
More information about the valhalla-spec-observers
mailing list