Package groovy.transform
Annotation Type ASTTest
@Documented @Retention(RUNTIME) @Target({PACKAGE,TYPE,ANNOTATION_TYPE,CONSTRUCTOR,METHOD,FIELD,PARAMETER,LOCAL_VARIABLE}) public @interface 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 provided, then the code is executed after the@ASTTest
(value = { def owner = node.declaringClass assert owner.fields.any { it.name == 'x' } })@Field int x
semantic analysis
phase
and each subsequent phase.
The 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 "int x".
- Since:
- 2.0.0
-
Required Element Summary
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description CompilePhase
phase
The compile phase after which the test code should run.
-
Element Details
-
value
Class valueA closure which is executed against the annotated node after the specified phase has completed.
-
-
-
phase
CompilePhase phaseThe compile phase after which the test code should run.- Default:
- SEMANTIC_ANALYSIS
-