@Documented @Retention(value=RUNTIME) @Target(value={TYPE,METHOD,ANNOTATION_TYPE,CONSTRUCTOR,FIELD,LOCAL_VARIABLE,PACKAGE,PARAMETER}) public @interface ASTTest
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@ASTTest
(value = { def owner = node.declaringClass assert owner.fields.any { it.name == 'x' } })@Field int x
semantic analysis
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 node (int x).Modifier and Type | Required Element and Description |
---|---|
Class |
value
A closure which is executed against the annotated node after the specified phase has completed.
|
Modifier and Type | Optional Element and Description |
---|---|
CompilePhase |
phase
The compile phase after which the test code should run.
|
public abstract Class value
public abstract CompilePhase phase