Class TemporaryVariableExpression

All Implemented Interfaces:
GroovydocHolder<AnnotatedNode>, NodeMetaDataHandler

public class TemporaryVariableExpression extends Expression
A front-end class for ExpressionAsVariableSlot which allows defining temporary variables loaded from variable slots directly at the AST level, without any knowledge of AsmClassGenerator.
Since:
2.4.0
  • Constructor Details

    • TemporaryVariableExpression

      public TemporaryVariableExpression(Expression expression)
      Wraps an expression so it can be cached in a temporary variable slot during bytecode generation.
      Parameters:
      expression - the expression to cache
  • Method Details

    • getType

      public ClassNode getType()
      Returns the wrapped expression type.
      Overrides:
      getType in class Expression
      Returns:
      the inferred type of the wrapped expression
    • remove

      public void remove(WriterController controller)
      Releases the temporary variable slot associated with this expression.
      Parameters:
      controller - the active writer controller
    • transformExpression

      public Expression transformExpression(ExpressionTransformer transformer)
      Transforms the wrapped expression while preserving the shared variable slot.
      Specified by:
      transformExpression in class Expression
      Parameters:
      transformer - the expression transformer to apply
      Returns:
      a transformed temporary-variable expression
    • visit

      public void visit(GroovyCodeVisitor visitor)
      Emits the cached variable-slot access when visiting bytecode, or delegates to the wrapped expression otherwise.
      Overrides:
      visit in class ASTNode
      Parameters:
      visitor - the visitor to accept