Model 3 classfile design document

John Rose john.r.rose at
Tue Mar 22 20:21:21 UTC 2016

The full display of type variables, with all their definition sites, strikes me as clunky, from a VM perspective. It's a large amount of AST info. 

For inner classes, we flatten up level references by introducing synthetic variables and fields. In a few places core reflection needs an attribute to map backward but the executable part is all flattened. This makes it easier to execute and compile. 

Could we do a similar trick for type variables?  I.e. represent up-level type vars as a flat sequence of synthetic local copies.

– John

> On Feb 11, 2016, at 2:24 PM, Bjorn B Vardal <bjornvar at> wrote:
> where Inner doesn't declare any type variables, my understanding is that Inner will still have the GenericClass attribute because it may refer to T. Will Inner still appear as the first class frame, with tvarCount=0, enforcing the rule that the first element is always the class itself?

More information about the valhalla-spec-observers mailing list