diff --git a/java/java-impl-refactorings/src/com/intellij/refactoring/memberPushDown/JavaPushDownDelegate.java b/java/java-impl-refactorings/src/com/intellij/refactoring/memberPushDown/JavaPushDownDelegate.java index 16eca961b9b1..42e690e92359 100644 --- a/java/java-impl-refactorings/src/com/intellij/refactoring/memberPushDown/JavaPushDownDelegate.java +++ b/java/java-impl-refactorings/src/com/intellij/refactoring/memberPushDown/JavaPushDownDelegate.java @@ -303,9 +303,12 @@ public class JavaPushDownDelegate extends PushDownDelegateTopic { + } +} + +abstract class Message implements IMessage { + public static void main(String[] args) { + new Topic(); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/pushDown/InterfaceInnerClassToClass_after.java b/java/java-tests/testData/refactoring/pushDown/InterfaceInnerClassToClass_after.java new file mode 100644 index 000000000000..efae41344b6c --- /dev/null +++ b/java/java-tests/testData/refactoring/pushDown/InterfaceInnerClassToClass_after.java @@ -0,0 +1,11 @@ +interface IMessage { +} + +abstract class Message implements IMessage { + public static void main(String[] args) { + new Topic(); + } + + public static class Topic { + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/pushDown/InterfaceInnerRecordToClass.java b/java/java-tests/testData/refactoring/pushDown/InterfaceInnerRecordToClass.java new file mode 100644 index 000000000000..0201c0f5ae87 --- /dev/null +++ b/java/java-tests/testData/refactoring/pushDown/InterfaceInnerRecordToClass.java @@ -0,0 +1,10 @@ +interface IMessage { + record Topic() { + } +} + +abstract class Message implements IMessage { + public static void main(String[] args) { + new Topic(); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/pushDown/InterfaceInnerRecordToClass_after.java b/java/java-tests/testData/refactoring/pushDown/InterfaceInnerRecordToClass_after.java new file mode 100644 index 000000000000..63c24b027d3d --- /dev/null +++ b/java/java-tests/testData/refactoring/pushDown/InterfaceInnerRecordToClass_after.java @@ -0,0 +1,11 @@ +interface IMessage { +} + +abstract class Message implements IMessage { + public static void main(String[] args) { + new Topic(); + } + + public record Topic() { + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/refactoring/PushDownTest.java b/java/java-tests/testSrc/com/intellij/java/refactoring/PushDownTest.java index 1912a21c9c86..cdc03c2da957 100644 --- a/java/java-tests/testSrc/com/intellij/java/refactoring/PushDownTest.java +++ b/java/java-tests/testSrc/com/intellij/java/refactoring/PushDownTest.java @@ -1,4 +1,4 @@ -// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.java.refactoring; import com.intellij.codeInsight.TargetElementUtil; @@ -68,6 +68,8 @@ public class PushDownTest extends LightRefactoringTestCase { public void testDefaultMethodToClassKeepAbstract() { doTestImplements(true); } public void testInterfaceStaticMethodToInterface() { doTest(); } public void testInterfaceStaticMethodToClass() { doTest(); } + public void testInterfaceInnerRecordToClass() { doTest(); } + public void testInterfaceInnerClassToClass() { doTest(); } public void testThisSuperExpressions() {doTest();} public void testMethodsInheritedFromSuper() {doTest();} public void testMethodsInheritedFromSuper1() {doTest();}