Class AspectProxyAsmGenerator
java.lang.Object
org.ek9lang.compiler.backend.jvm.AbstractAsmGenerator
org.ek9lang.compiler.backend.jvm.AspectProxyAsmGenerator
- All Implemented Interfaces:
Consumer<AspectProxyInstr>
final class AspectProxyAsmGenerator
extends AbstractAsmGenerator
implements Consumer<AspectProxyInstr>
Specialized ASM generator for CREATE_ASPECT_PROXY instruction.
When encountered in the _prepare method, this generator:
- Triggers
AspectProxyClassGeneratorto emit a synthetic proxy.classfile (cached — only once per proxy) - Emits instantiation bytecode in the current method: NEW + DUP + load delegate + load aspects + INVOKESPECIAL + ASTORE
Follows the two-tier pattern established by EnumIteratorImplAsmGenerator.
-
Field Summary
Fields inherited from class AbstractAsmGenerator
classWriter, constructTargetTuple, outputVisitor -
Constructor Summary
ConstructorsConstructorDescriptionAspectProxyAsmGenerator(ConstructTargetTuple constructTargetTuple, OutputVisitor outputVisitor, org.objectweb.asm.ClassWriter classWriter) -
Method Summary
Methods inherited from class AbstractAsmGenerator
convertToJvmDescriptor, convertToJvmName, extractFieldName, generateBooleanLiteral, generateCharacterLiteral, generateDebugInfo, generateFloatLiteral, generateIntegerLiteral, generateLoadVariable, generateLocalVariableTable, generateMethodDescriptor, generateObjectLiteral, generateStackOperation, generateStoreVariable, generateStoreVariableAsInt, generateStringLiteral, getCurrentMethodVisitor, getFieldDescriptor, getMethodContext, getOrCreateLabel, getOwnerClassName, getVariableIndex, isFieldAccess, isVariableAllocated, isVariableFieldAccess, setCurrentMethodVisitor, setSharedMethodContext, toJvmFieldName, trackTempVariableFromLiteral, trackTempVariableFromLoad
-
Constructor Details
-
AspectProxyAsmGenerator
AspectProxyAsmGenerator(ConstructTargetTuple constructTargetTuple, OutputVisitor outputVisitor, org.objectweb.asm.ClassWriter classWriter)
-
-
Method Details
-
accept
- Specified by:
acceptin interfaceConsumer<AspectProxyInstr>
-