[groovy] @Field support: use stubs

This commit is contained in:
Daniil Ovchinnikov
2016-10-31 23:05:56 +03:00
parent 27585f481c
commit 1c290ffe1b
@@ -16,11 +16,8 @@
package org.jetbrains.plugins.groovy.transformations.impl;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.plugins.groovy.lang.psi.GroovyRecursiveElementVisitor;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrVariable;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrVariableDeclaration;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrTypeDefinition;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrMethod;
import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrScriptField;
import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GroovyScriptClass;
import org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames;
@@ -37,26 +34,12 @@ public class FieldScriptTransformationSupport implements AstTransformationSuppor
if (!hasNameInFile(scriptClass.getContainingFile(), "Field")) {
return;
}
scriptClass.getContainingFile().accept(new GroovyRecursiveElementVisitor() {
@Override
public void visitVariableDeclaration(@NotNull GrVariableDeclaration element) {
if (element.getModifierList().findAnnotation(GroovyCommonClassNames.GROOVY_TRANSFORM_FIELD) != null) {
for (GrVariable variable : element.getVariables()) {
context.addField(new GrScriptField(variable, scriptClass));
}
for (GrVariableDeclaration declaration : scriptClass.getContainingFile().getAnnotatedScriptDeclarations()) {
if (declaration.getModifierList().findAnnotation(GroovyCommonClassNames.GROOVY_TRANSFORM_FIELD) != null) {
for (GrVariable variable : declaration.getVariables()) {
context.addField(new GrScriptField(variable, scriptClass));
}
super.visitVariableDeclaration(element);
}
@Override
public void visitMethod(@NotNull GrMethod method) {
//skip methods
}
@Override
public void visitTypeDefinition(@NotNull GrTypeDefinition typeDefinition) {
//skip type defs
}
});
}
}
}