This is probably a remain of the L/Q model, where a value class could be referenced either as a L-type or a Q-type. L-Foo.x and Q-Foo.x pointed to the same place in the layout, so there wasn’t a justification to make a L/Q distinction here.
With LW3, L-Foo and Q-Foo are two different types, so FieldRef/MethodRef should definitively accept types there (with an explicit Q-envelope or an implicit L-envelope). Fred > On Jun 2, 2020, at 18:13, Dan Smith <daniel.sm...@oracle.com> wrote: > > Fieldref/Methodref are an anomaly, where the current Valhalla design tries to > maintain that it's a class/interface reference, not a type (e.g., we prohibit > inline types here), even though array types can also be used. We might be > happier embracing that the class_index of a Fieldref/Methodref is the type of > the first argument and a type to search for members. (I'm on the fence about > this.)