[Java] Annotation Type ASTTest
- groovy.transform.ASTTest
This AST transformation aims at helping in debugging other AST transformations. It provides a basic infrastructure for performing tests on AST nodes. You can place this annotation on any node which accepts an annotation (types, methods, annotations, constructors, fields, local variables, packages or parameters), then use a script which is run against this AST node at a specific phase. For example, you could test the Field AST transformation this way:
import groovy.transform.*The closure code is executed after the specified phase has completed. If no phase is selected, then the code is executed after the semantic analysis phase. The@ASTTest
(value = { def owner = node.declaringClass assert owner.fields.any { it.name == 'x' } })@Field int x
node
variable refers to the AST node where the AST test annotation is put. In the previous example, it means that node refers to the declaration node (int x). - Authors:
- Cedric Champeau
- Since:
- 2.0.0
Element Summary
Type | Name and Description |
---|---|
Class |
value A closure which is executed against the annotated node after the specified phase has completed. |
Type | Name and Description |
---|---|
CompilePhase |
phase The compile phase after which the test code should run. |
Inherited Methods Summary
Methods inherited from class | Name |
---|---|
class Object | wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll |
Element Detail
public CompilePhase phase
The compile phase after which the test code should run. @default CompilePhase.SEMANTIC_ANALYSIS
public Class value
A closure which is executed against the annotated node after the specified phase has completed.
© 2003-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/2.4.21/html/gapi/groovy/transform/ASTTest.html