diff --git a/test/org/jetbrains/java/decompiler/SingleClassesTest.java b/test/org/jetbrains/java/decompiler/SingleClassesTest.java index e3a6f56..5647ab8 100644 --- a/test/org/jetbrains/java/decompiler/SingleClassesTest.java +++ b/test/org/jetbrains/java/decompiler/SingleClassesTest.java @@ -81,6 +81,7 @@ public class SingleClassesTest { @Test public void testJava9StringConcat() { doTest("java9/TestJava9StringConcat"); } @Test public void testMethodReferenceSameName() { doTest("pkg/TestMethodReferenceSameName"); } @Test public void testMethodReferenceLetterClass() { doTest("pkg/TestMethodReferenceLetterClass"); } + @Test public void testMemberAnnotations() { doTest("pkg/TestMemberAnnotations"); } protected void doTest(String testFile, String... companionFiles) { ConsoleDecompiler decompiler = fixture.getDecompiler(); diff --git a/testData/classes/pkg/TestMemberAnnotations$A.class b/testData/classes/pkg/TestMemberAnnotations$A.class new file mode 100644 index 0000000..f7fa790 Binary files /dev/null and b/testData/classes/pkg/TestMemberAnnotations$A.class differ diff --git a/testData/classes/pkg/TestMemberAnnotations.class b/testData/classes/pkg/TestMemberAnnotations.class new file mode 100644 index 0000000..cb09ec4 Binary files /dev/null and b/testData/classes/pkg/TestMemberAnnotations.class differ diff --git a/testData/results/TestMemberAnnotations.dec b/testData/results/TestMemberAnnotations.dec new file mode 100644 index 0000000..1e3a41c --- /dev/null +++ b/testData/results/TestMemberAnnotations.dec @@ -0,0 +1,34 @@ +package pkg; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +class TestMemberAnnotations { + @TestMemberAnnotations.A("const") + public static final int CONST = 42; + @TestMemberAnnotations.A("field") + private int f; + + @TestMemberAnnotations.A("return") + private int f(@TestMemberAnnotations.A("arg") int var1) { + return var1 + this.f + 42;// 12 + } + + @Retention(RetentionPolicy.RUNTIME) + @interface A { + String value() default ""; + } +} + +class 'pkg/TestMemberAnnotations' { + method 'f (I)I' { + 2 13 + 5 13 + 6 13 + 8 13 + 9 13 + } +} + +Lines mapping: +12 <-> 14 diff --git a/testData/src/pkg/TestMemberAnnotations.java b/testData/src/pkg/TestMemberAnnotations.java new file mode 100644 index 0000000..b7c7da9 --- /dev/null +++ b/testData/src/pkg/TestMemberAnnotations.java @@ -0,0 +1,13 @@ +package pkg; + +import java.lang.annotation.*; + +class TestMemberAnnotations { + @Retention(RetentionPolicy.RUNTIME) + @interface A { String value() default ""; } + + @A("const") public static final int CONST = 42; + @A("field") private int f; + + @A("return") private int f(@A("arg") int i) { return i + f + CONST; } +} \ No newline at end of file