From 1c290ffe1b90ca89cb062cb424e1c1944d64a98a Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Mon, 31 Oct 2016 22:55:53 +0300 Subject: [PATCH] [groovy] @Field support: use stubs --- .../FieldScriptTransformationSupport.java | 27 ++++--------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/transformations/impl/FieldScriptTransformationSupport.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/transformations/impl/FieldScriptTransformationSupport.java index 8c4b024fd602..e7b18810df71 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/transformations/impl/FieldScriptTransformationSupport.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/transformations/impl/FieldScriptTransformationSupport.java @@ -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 - } - }); + } } }