Class CompareIdentityExpression
java.lang.Object
org.codehaus.groovy.ast.ASTNode
org.codehaus.groovy.ast.AnnotatedNode
org.codehaus.groovy.ast.expr.Expression
org.codehaus.groovy.ast.expr.BinaryExpression
org.codehaus.groovy.transform.sc.transformers.CompareIdentityExpression
- All Implemented Interfaces:
GroovydocHolder<AnnotatedNode>,NodeMetaDataHandler
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.
-
Field Summary
Fields inherited from class org.codehaus.groovy.ast.expr.Expression
EMPTY_ARRAYFields inherited from interface groovy.lang.groovydoc.GroovydocHolder
DOC_COMMENT -
Constructor Summary
ConstructorsConstructorDescriptionCompareIdentityExpression(Expression leftExpression, boolean eq, Expression rightExpression) CompareIdentityExpression(Expression leftExpression, Expression rightExpression) -
Method Summary
Modifier and TypeMethodDescriptionbooleanisEq()voidSets the type information for this expression.transformExpression(ExpressionTransformer transformer) Transforms this expression and any nested expressions according to the provided transformer.voidvisit(GroovyCodeVisitor visitor) Accepts a code visitor for AST traversal and transformation.Methods inherited from class org.codehaus.groovy.ast.expr.BinaryExpression
getLeftExpression, getOperation, getRightExpression, getText, isSafe, newAssignmentExpression, newInitializationExpression, setLeftExpression, setRightExpression, setSafe, toStringMethods inherited from class org.codehaus.groovy.ast.expr.Expression
getType, transformExpressions, transformExpressionsMethods inherited from class org.codehaus.groovy.ast.AnnotatedNode
addAnnotation, addAnnotation, addAnnotations, getAnnotations, getAnnotations, getDeclaringClass, getGroovydoc, getInstance, hasNoRealSourcePosition, isSynthetic, setDeclaringClass, setHasNoRealSourcePosition, setSyntheticMethods inherited from class org.codehaus.groovy.ast.ASTNode
copyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getMetaDataMap, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setMetaDataMap, setSourcePositionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.codehaus.groovy.ast.NodeMetaDataHandler
copyNodeMetaData, getNodeMetaData, getNodeMetaData, getNodeMetaData, newMetaDataMap, putNodeMetaData, removeNodeMetaData, setNodeMetaData
-
Constructor Details
-
CompareIdentityExpression
-
CompareIdentityExpression
-
-
Method Details
-
isEq
public boolean isEq() -
setType
Description copied from class:ExpressionSets the type information for this expression. Used during type checking and compilation phases to associate a specific type with this expression result.- Overrides:
setTypein classExpression- Parameters:
type- theClassNoderepresenting this expression's type
-
transformExpression
Description copied from class:ExpressionTransforms 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:
transformExpressionin classBinaryExpression- Parameters:
transformer- theExpressionTransformerto apply- Returns:
- a transformed copy of this expression (or this expression itself if no changes are needed)
-
visit
Description copied from class:ASTNodeAccepts 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:
visitin classBinaryExpression- Parameters:
visitor- theGroovyCodeVisitorto process this node
-