We have had support for the const-class operation, but it was only possible to
fill a local with the value of a Class object you could reference in the geneeration
context. This meant that it was not possible to generate a reference to a generated
class, as it did not exist in the class loader until after the generation was finished
and the new class loader could be used.
The real issue here is the restriction of the loadConstant() method, which requires an
actual Class object. This class object gets turned into a string internally for code
generation, and so we don't actually need a real class to fill the variable value
correctly. Using a TypeId will still get converted to a ConstantInsn under the hood,
and the value will be assigned correctly.
We have had support for the const-class operation, but it was only possible to fill a local with the value of a Class object you could reference in the geneeration context. This meant that it was not possible to generate a reference to a generated class, as it did not exist in the class loader until after the generation was finished and the new class loader could be used.
The real issue here is the restriction of the loadConstant() method, which requires an actual Class object. This class object gets turned into a string internally for code generation, and so we don't actually need a real class to fill the variable value correctly. Using a TypeId will still get converted to a ConstantInsn under the hood, and the value will be assigned correctly.