Class GuardedAssignmentAsmGenerator


final class GuardedAssignmentAsmGenerator extends AbstractControlFlowAsmGenerator
Specialized generator for EK9 guarded assignment (:=?). Handles CONTROL_FLOW_CHAIN with chain_type: "GUARDED_ASSIGNMENT".

EK9 Guarded Assignment Pattern: variable :=? value

  • Assigns value to variable only if variable is null or not set
  • Prevents overwriting already-initialized variables
  • Useful for default value initialization

TODO: Implement after question operator is working and tested. Implementation will follow similar pattern to QuestionOperatorAsmGenerator: - Evaluate condition (variable? returns false if null/unset) - If condition false: execute assignment - If condition true: skip assignment

  • Constructor Details

    • GuardedAssignmentAsmGenerator

      GuardedAssignmentAsmGenerator(ConstructTargetTuple constructTargetTuple, OutputVisitor outputVisitor, org.objectweb.asm.ClassWriter classWriter)
  • Method Details

    • generate

      public void generate(ControlFlowChainInstr instr)
      Generate bytecode for guarded assignment.
      Parameters:
      instr - CONTROL_FLOW_CHAIN instruction with GUARDED_ASSIGNMENT type
      Throws:
      CompilerException - Not yet implemented