Class Scenario2EqualityGenerator

java.lang.Object
org.ek9lang.compiler.phase7.Scenario2EqualityGenerator

final class Scenario2EqualityGenerator extends Object
Generates IR for Scenario 2 wrapper equality operations.

Equality operations (_eq, _neq) need special handling because the base type's _eq uses Java's equals() to compare contained values, which doesn't invoke the EK9 type's _eq operator. We must compare the contained values directly using the contained type's equality method.

Handles three cases:

  • Contained type lacks equality operator: return unset Boolean
  • Collection types (List, Dict): delegate to collection's own _eq
  • Single-value containers (Optional, Result): extract values and compare
  • Constructor Details

  • Method Details

    • isEqualityOperation

      boolean isEqualityOperation(MethodSymbol method)
      Check if a method is an equality operation that needs special argument handling.
    • generate

      void generate(IRConstruct construct, MethodSymbol method, String baseTypeName)
      Generate an equality operation that handles wrapper-to-wrapper comparison.