diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java b/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java index b82eda47a020..ad680c89e773 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java @@ -52,7 +52,10 @@ import com.intellij.openapi.util.IconLoader; import com.intellij.openapi.util.Ref; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; -import com.intellij.psi.codeStyle.*; +import com.intellij.psi.codeStyle.CodeStyleManager; +import com.intellij.psi.codeStyle.CodeStyleSettingsManager; +import com.intellij.psi.codeStyle.CommonCodeStyleSettings; +import com.intellij.psi.codeStyle.JavaCodeStyleManager; import com.intellij.psi.impl.source.jsp.jspJava.JspClass; import com.intellij.psi.infos.CandidateInfo; import com.intellij.psi.javadoc.PsiDocComment; @@ -651,7 +654,7 @@ public class OverrideImplementUtil { for (PsiMethod prototype : prototypes) { PsiElement anchor = getDefaultAnchorToOverrideOrImplement(aClass, candidate.getElement(), candidate.getSubstitutor()); PsiElement result = GenerateMembersUtil.insert(aClass, prototype, anchor, true); - resultMembers.add(new PsiGenerationInfo((PsiMethod)result)); + resultMembers.add(createGenerationInfo((PsiMethod)result)); } } } diff --git a/java/openapi/src/com/intellij/codeInsight/MethodImplementor.java b/java/openapi/src/com/intellij/codeInsight/MethodImplementor.java index 083b8683e11a..241e151c214c 100644 --- a/java/openapi/src/com/intellij/codeInsight/MethodImplementor.java +++ b/java/openapi/src/com/intellij/codeInsight/MethodImplementor.java @@ -21,6 +21,7 @@ import com.intellij.psi.PsiClass; import com.intellij.psi.PsiMethod; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** * @author peter @@ -36,5 +37,6 @@ public interface MethodImplementor { boolean isBodyGenerated(); + @Nullable GenerationInfo createGenerationInfo(PsiMethod method, boolean mergeIfExists); } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/overrideImplement/GroovyOverrideImplementUtil.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/overrideImplement/GroovyOverrideImplementUtil.java index cb5869dfdec5..5a51236c61d1 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/overrideImplement/GroovyOverrideImplementUtil.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/overrideImplement/GroovyOverrideImplementUtil.java @@ -27,6 +27,7 @@ import com.intellij.psi.util.PsiTypesUtil; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.plugins.groovy.lang.GrReferenceAdjuster; import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory; import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrCodeBlock; import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrTypeDefinition; @@ -77,6 +78,8 @@ public class GroovyOverrideImplementUtil { if (OverrideImplementUtil.isInsertOverride(method, aClass)) { result.getModifierList().addAnnotation(JAVA_LANG_OVERRIDE); } + + GrReferenceAdjuster.shortenReferences(result); return result; } @@ -145,10 +148,10 @@ public class GroovyOverrideImplementUtil { final GroovyPsiElementFactory factory = GroovyPsiElementFactory.getInstance(project); if (isConstructor) { - return factory.createConstructorFromText(name, buffer.toString(), null); + return factory.createConstructorFromText(name, buffer.toString(), aClass); } else { - return (GrMethod)factory.createTopElementFromText(buffer.toString()); + return factory.createMethodFromText(buffer.toString(), aClass); } }