Record Class ConditionEvaluationResult

java.lang.Object
java.lang.Record
org.ek9lang.compiler.phase7.support.ConditionEvaluationResult
Record Components:
instructions - IR instruction sequence for condition evaluation (scoped)
primitiveVariableName - Name of primitive boolean variable for branching

public record ConditionEvaluationResult(List<IRInstr> instructions, String primitiveVariableName) extends Record
Result of condition evaluation with primitive boolean extraction.

CONCERN: Structured return value for condition evaluation operations. RESPONSIBILITY: Eliminate fragile IR pattern matching to extract primitive variable names. REUSABILITY: All control flow generators needing condition evaluation results.

Replaces the fragile extractPrimitiveVariable(List<IRInstr>) pattern which does string matching on IR instruction sequences. Instead, methods return structured results with both IR instructions and the primitive variable name.

Pattern replaced:

final var instructions = generateCondition(...);
final var primitiveVar = extractPrimitiveVariable(instructions);  // ← FRAGILE

New pattern:

final var result = generateCondition(...);
final var instructions = result.instructions();
final var primitiveVar = result.primitiveVariableName();  // ← TYPE-SAFE
  • Constructor Details

    • ConditionEvaluationResult

      public ConditionEvaluationResult(List<IRInstr> instructions, String primitiveVariableName)
      Creates an instance of a ConditionEvaluationResult record class.
      Parameters:
      instructions - the value for the instructions record component
      primitiveVariableName - the value for the primitiveVariableName record component
  • Method Details

    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • instructions

      public List<IRInstr> instructions()
      Returns the value of the instructions record component.
      Returns:
      the value of the instructions record component
    • primitiveVariableName

      public String primitiveVariableName()
      Returns the value of the primitiveVariableName record component.
      Returns:
      the value of the primitiveVariableName record component