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 8f71ae253000..cb5869dfdec5 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/overrideImplement/GroovyOverrideImplementUtil.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/overrideImplement/GroovyOverrideImplementUtil.java @@ -95,11 +95,14 @@ public class GroovyOverrideImplementUtil { } final PsiType returnType = substitutor.substitute(getSuperReturnType(superMethod)); - if (!hasModifiers && returnType == null || typeParameters.size() > 0) { + + boolean isConstructor = superMethod.isConstructor(); + if (!isConstructor && (!hasModifiers && returnType == null || typeParameters.size() > 0)) { buffer.append("def "); } if (typeParameters.size() > 0) { + LOG.assertTrue(!isConstructor); buffer.append('<'); for (PsiTypeParameter parameter : typeParameters) { buffer.append(parameter.getText()); @@ -109,7 +112,7 @@ public class GroovyOverrideImplementUtil { } final String name; - if (superMethod.isConstructor()) { + if (isConstructor) { name = aClass.getName(); } else { @@ -141,10 +144,12 @@ public class GroovyOverrideImplementUtil { buffer.append(") {}"); final GroovyPsiElementFactory factory = GroovyPsiElementFactory.getInstance(project); - if (superMethod.isConstructor()) { + if (isConstructor) { return factory.createConstructorFromText(name, buffer.toString(), null); } - return (GrMethod) factory.createTopElementFromText(buffer.toString()); + else { + return (GrMethod)factory.createTopElementFromText(buffer.toString()); + } } @Nullable diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/overriding/GroovyOverrideImplementTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/overriding/GroovyOverrideImplementTest.groovy index f5fa9012259b..ddd1c4817d64 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/overriding/GroovyOverrideImplementTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/overriding/GroovyOverrideImplementTest.groovy @@ -37,7 +37,7 @@ class Test {} generateImplementation(findMethod(Object.name, "Object")) myFixture.checkResult """ class Test { - def Test() { + Test() { super() //To change body of overridden methods use File | Settings | File Templates. } }