diff --git a/plugins/java-decompiler/engine/test/org/jetbrains/java/decompiler/SingleClassesTest.java b/plugins/java-decompiler/engine/test/org/jetbrains/java/decompiler/SingleClassesTest.java index fd71584e3fcb..fd48f0dee9b3 100644 --- a/plugins/java-decompiler/engine/test/org/jetbrains/java/decompiler/SingleClassesTest.java +++ b/plugins/java-decompiler/engine/test/org/jetbrains/java/decompiler/SingleClassesTest.java @@ -118,6 +118,7 @@ public class SingleClassesTest { //@Test public void testUnionType() { doTest("pkg/TestUnionType"); } //@Test public void testInnerClassConstructor2() { doTest("pkg/TestInner2"); } //@Test public void testInUse() { doTest("pkg/TestInUse"); } + //@Test public void testInterfaceSuper() { doTest("pkg/TestInterfaceSuper"); } private void doTest(String testFile, String... companionFiles) { ConsoleDecompiler decompiler = fixture.getDecompiler(); diff --git a/plugins/java-decompiler/engine/testData/classes/pkg/TestInterfaceSuper$Impl.class b/plugins/java-decompiler/engine/testData/classes/pkg/TestInterfaceSuper$Impl.class new file mode 100644 index 000000000000..c9be440681e4 Binary files /dev/null and b/plugins/java-decompiler/engine/testData/classes/pkg/TestInterfaceSuper$Impl.class differ diff --git a/plugins/java-decompiler/engine/testData/classes/pkg/TestInterfaceSuper.class b/plugins/java-decompiler/engine/testData/classes/pkg/TestInterfaceSuper.class new file mode 100644 index 000000000000..1c4504ae8c20 Binary files /dev/null and b/plugins/java-decompiler/engine/testData/classes/pkg/TestInterfaceSuper.class differ diff --git a/plugins/java-decompiler/engine/testData/results/TestInterfaceSuper.dec b/plugins/java-decompiler/engine/testData/results/TestInterfaceSuper.dec new file mode 100644 index 000000000000..a5567e2e8127 --- /dev/null +++ b/plugins/java-decompiler/engine/testData/results/TestInterfaceSuper.dec @@ -0,0 +1,30 @@ +package pkg; + +public interface TestInterfaceSuper { + default void defaultMethod() { + }// 4 + + public static class Impl implements TestInterfaceSuper { + public void defaultMethod() { + TestInterfaceSuper.super.defaultMethod();// 8 + }// 9 + } +} + +class 'pkg/TestInterfaceSuper' { + method 'defaultMethod ()V' { + 0 4 + } +} + +class 'pkg/TestInterfaceSuper$Impl' { + method 'defaultMethod ()V' { + 1 8 + 4 9 + } +} + +Lines mapping: +4 <-> 5 +8 <-> 9 +9 <-> 10 diff --git a/plugins/java-decompiler/engine/testData/src/pkg/TestInterfaceSuper.java b/plugins/java-decompiler/engine/testData/src/pkg/TestInterfaceSuper.java new file mode 100644 index 000000000000..02f752733320 --- /dev/null +++ b/plugins/java-decompiler/engine/testData/src/pkg/TestInterfaceSuper.java @@ -0,0 +1,11 @@ +package pkg; + +public interface TestInterfaceSuper { + default void defaultMethod() {} + + class Impl implements TestInterfaceSuper { + public void defaultMethod() { + TestInterfaceSuper.super.defaultMethod(); + } + } +} \ No newline at end of file