mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
java: move default method from interface to class fixed (IDEA-222011)
GitOrigin-RevId: bcbbd067b274b0267d1305dc0551d499b394a6e4
This commit is contained in:
committed by
intellij-monorepo-bot
parent
a07b56e42c
commit
21fdf34ab7
+5
-1
@@ -301,8 +301,8 @@ public class MoveInstanceMethodProcessor extends BaseRefactoringProcessor{
|
||||
}
|
||||
|
||||
try {
|
||||
final PsiModifierList modifierList = patternMethod.getModifierList();
|
||||
if (myTargetClass.isInterface()) {
|
||||
final PsiModifierList modifierList = patternMethod.getModifierList();
|
||||
if (!PsiUtil.isLanguageLevel8OrHigher(myTargetClass)) {
|
||||
patternMethod.getBody().delete();
|
||||
modifierList.setModifierProperty(PsiModifier.DEFAULT, false);
|
||||
@@ -312,6 +312,10 @@ public class MoveInstanceMethodProcessor extends BaseRefactoringProcessor{
|
||||
}
|
||||
RefactoringUtil.makeMethodAbstract(myTargetClass, patternMethod);
|
||||
}
|
||||
else if (myMethod.hasModifierProperty(PsiModifier.DEFAULT)) {
|
||||
modifierList.setModifierProperty(PsiModifier.DEFAULT, false);
|
||||
VisibilityUtil.setVisibility(modifierList, PsiModifier.PUBLIC);
|
||||
}
|
||||
|
||||
final PsiMethod method = addMethodToClass(myTargetClass, patternMethod, false);
|
||||
myMethod.delete();
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
class Foo {
|
||||
}
|
||||
interface Bar {
|
||||
default void ba<caret>z(Foo foo) {}
|
||||
|
||||
void grault(Foo foo);
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
class Foo {
|
||||
public void baz() {}
|
||||
}
|
||||
interface Bar {
|
||||
|
||||
void grault(Foo foo);
|
||||
}
|
||||
+4
@@ -92,6 +92,10 @@ public class MoveInstanceMethodTest extends LightRefactoringTestCase {
|
||||
doTest(true, 0);
|
||||
}
|
||||
|
||||
public void testDefaultInClass() {
|
||||
doTest(true, 0);
|
||||
}
|
||||
|
||||
public void testQualifyFieldAccess() {
|
||||
doTest(false, 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user