Class CompareIdentityExpression

All Implemented Interfaces:
GroovydocHolder<AnnotatedNode>, NodeMetaDataHandler

public class CompareIdentityExpression extends BinaryExpression
Compares two objects using identity comparison. This expression will generate bytecode using the IF_ACMPNE instruction, instead of using the "equals" method that is currently mapped to "==" in Groovy. This expression should only be used to compare to objects, not primitives, and only in the context of reference equality check.
  • Constructor Details

    • CompareIdentityExpression

      public CompareIdentityExpression(Expression leftExpression, boolean eq, Expression rightExpression)
    • CompareIdentityExpression

      public CompareIdentityExpression(Expression leftExpression, Expression rightExpression)
  • Method Details

    • isEq

      public boolean isEq()
    • setType

      public void setType(ClassNode type)
      Description copied from class: Expression
      Sets the type information for this expression. Used during type checking and compilation phases to associate a specific type with this expression result.
      Overrides:
      setType in class Expression
      Parameters:
      type - the ClassNode representing this expression's type
    • transformExpression

      public Expression transformExpression(ExpressionTransformer transformer)
      Description copied from class: Expression
      Transforms this expression and any nested expressions according to the provided transformer. This method is called during AST transformation phases and must recursively transform any nested expressions to support full AST tree transformation.
      Overrides:
      transformExpression in class BinaryExpression
      Parameters:
      transformer - the ExpressionTransformer to apply
      Returns:
      a transformed copy of this expression (or this expression itself if no changes are needed)
    • visit

      public void visit(GroovyCodeVisitor visitor)
      Description copied from class: ASTNode
      Accepts a code visitor for AST traversal and transformation. Subclasses must implement this method to support visitor pattern-based processing. The visitor pattern enables decoupling of AST structure from processing logic.
      Overrides:
      visit in class BinaryExpression
      Parameters:
      visitor - the GroovyCodeVisitor to process this node