diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ModifierFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ModifierFix.java index d99d9b0a9327..49a8898b48e5 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ModifierFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ModifierFix.java @@ -238,6 +238,14 @@ public class ModifierFix extends PsiBasedModCommandAction removeFinalModifierFromMethods(aClass); } } + else { + if (owner instanceof PsiMethod method && PsiModifier.STATIC.equals(myModifier)) { + PsiClass containingClass = method.getContainingClass(); + if (containingClass != null && containingClass.isInterface()) { + modifierList.setModifierProperty(PsiModifier.DEFAULT, true); + } + } + } changeModifierList(modifierList); } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier/beforeMakeInterfaceMethodNonStatic.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier/beforeMakeInterfaceMethodNonStatic.java new file mode 100644 index 000000000000..a65e229ccbb1 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier/beforeMakeInterfaceMethodNonStatic.java @@ -0,0 +1,8 @@ +// "Make 'y())' not static" "false" +abstract interface Interface { + int f(); + + static void y() { + f(); // <- Error + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier8/afterMakeInterfaceMethodNonStatic.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier8/afterMakeInterfaceMethodNonStatic.java new file mode 100644 index 000000000000..2c0a9f9d7253 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier8/afterMakeInterfaceMethodNonStatic.java @@ -0,0 +1,8 @@ +// "Make 'y()' not static" "true" +abstract interface Interface { + int f(); + + default void y() { + f(); // <- Error + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier8/beforeMakeInterfaceMethodNonStatic.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier8/beforeMakeInterfaceMethodNonStatic.java new file mode 100644 index 000000000000..f86efa53a532 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier8/beforeMakeInterfaceMethodNonStatic.java @@ -0,0 +1,8 @@ +// "Make 'y()' not static" "true" +abstract interface Interface { + int f(); + + static void y() { + f(); // <- Error + } +} \ No newline at end of file