@Documented
@Retention(RUNTIME)
@Target({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 | Description |
---|---|---|
java.lang.Class |
value |
A closure which is executed against the annotated node after the specified phase has completed.
|
Modifier and Type | Optional Element | Description |
---|---|---|
CompilePhase |
phase |
The compile phase after which the test code should run.
|
java.lang.Class value
CompilePhase phase