provide extends fix for overriding return types (IDEA-161739)

This commit is contained in:
Anna.Kozlova
2016-09-26 18:14:53 +02:00
parent 4e550620cd
commit 0c1b50e60f
3 changed files with 38 additions and 0 deletions
@@ -213,6 +213,10 @@ public class HighlightMethodUtil {
description).create();
QuickFixAction.registerQuickFixAction(errorResult, QUICK_FIX_FACTORY.createMethodReturnFix(method, substitutedSuperReturnType, false));
QuickFixAction.registerQuickFixAction(errorResult, QUICK_FIX_FACTORY.createSuperMethodReturnFix(superMethod, returnType));
final PsiClass returnClass = PsiUtil.resolveClassInClassTypeOnly(returnType);
if (returnClass != null && substitutedSuperReturnType instanceof PsiClassType) {
QuickFixAction.registerQuickFixAction(errorResult, QUICK_FIX_FACTORY.createChangeParameterClassFix(returnClass, (PsiClassType)substitutedSuperReturnType));
}
return errorResult;
}
@@ -0,0 +1,19 @@
// "Make 'Bar' implement 'java.lang.Runnable'" "true"
abstract class Foo {
abstract Runnable foo();
}
class FooBar extends Foo {
@Override
Bar foo() {
return null;
}
static class Bar implements Runnable {
public void run() {
<caret>
}
}
}
@@ -0,0 +1,15 @@
// "Make 'Bar' implement 'java.lang.Runnable'" "true"
abstract class Foo {
abstract Runnable foo();
}
class FooBar extends Foo {
@Override
B<caret>ar foo() {
return null;
}
static class Bar {}
}