diff --git a/test/org/jetbrains/java/decompiler/SingleClassesTest.java b/test/org/jetbrains/java/decompiler/SingleClassesTest.java index 180428d..cbbbc2d 100644 --- a/test/org/jetbrains/java/decompiler/SingleClassesTest.java +++ b/test/org/jetbrains/java/decompiler/SingleClassesTest.java @@ -83,7 +83,9 @@ public class SingleClassesTest { @Test public void testMethodReferenceLetterClass() { doTest("pkg/TestMethodReferenceLetterClass"); } @Test public void testMemberAnnotations() { doTest("pkg/TestMemberAnnotations"); } @Test public void testStaticNameClash() { doTest("pkg/TestStaticNameClash"); } - @Test public void testInterfaceWithObject() { doTest("pkg/TestInterfaceWithObject"); } + @Test public void testInterfaceWithPrimitiveField() { doTest("pkg/TestInterfaceWithPrimitiveField"); } + @Test public void testInterfaceWithObjectField() { doTest("pkg/TestInterfaceWithObjectField"); } + @Test public void testTestMutableStaticOtherClass() { doTest("pkg/TestMutableStaticOtherClass"); } protected void doTest(String testFile, String... companionFiles) { ConsoleDecompiler decompiler = fixture.getDecompiler(); diff --git a/testData/classes/pkg/TestClassFields.class b/testData/classes/pkg/TestClassFields.class index 603bab2..a25091d 100644 Binary files a/testData/classes/pkg/TestClassFields.class and b/testData/classes/pkg/TestClassFields.class differ diff --git a/testData/classes/pkg/TestInterfaceWithObject.class b/testData/classes/pkg/TestInterfaceWithObject.class deleted file mode 100644 index 614da5e..0000000 Binary files a/testData/classes/pkg/TestInterfaceWithObject.class and /dev/null differ diff --git a/testData/classes/pkg/TestInterfaceWithObjectField.class b/testData/classes/pkg/TestInterfaceWithObjectField.class new file mode 100644 index 0000000..bf7ec68 Binary files /dev/null and b/testData/classes/pkg/TestInterfaceWithObjectField.class differ diff --git a/testData/classes/pkg/TestInterfaceWithPrimitiveField.class b/testData/classes/pkg/TestInterfaceWithPrimitiveField.class new file mode 100644 index 0000000..b079f95 Binary files /dev/null and b/testData/classes/pkg/TestInterfaceWithPrimitiveField.class differ diff --git a/testData/classes/pkg/TestMutableStaticOtherClass.class b/testData/classes/pkg/TestMutableStaticOtherClass.class new file mode 100644 index 0000000..14b1efd Binary files /dev/null and b/testData/classes/pkg/TestMutableStaticOtherClass.class differ diff --git a/testData/results/TestClassFields.dec b/testData/results/TestClassFields.dec index 75ece1e..d139051 100644 --- a/testData/results/TestClassFields.dec +++ b/testData/results/TestClassFields.dec @@ -1,25 +1,26 @@ package pkg; public class TestClassFields { + static int staticMutable; private static int[] sizes; private static String[] names = new String[]{"name1", "name2"}; static { - sizes = new int[names.length];// 26 - }// 27 + sizes = new int[names.length];// 27 + }// 28 } class 'pkg/TestClassFields' { method ' ()V' { - 11 7 - 14 7 - 17 7 - 1a 8 + 11 8 + 14 8 + 17 8 + 1a 9 } } Lines mapping: -26 <-> 8 27 <-> 9 +28 <-> 10 Not mapped: -25 +26 diff --git a/testData/results/TestInterfaceWithObject.dec b/testData/results/TestInterfaceWithObjectField.dec similarity index 68% rename from testData/results/TestInterfaceWithObject.dec rename to testData/results/TestInterfaceWithObjectField.dec index 5afeed6..c9418d8 100644 --- a/testData/results/TestInterfaceWithObject.dec +++ b/testData/results/TestInterfaceWithObjectField.dec @@ -2,7 +2,7 @@ package pkg; import java.math.BigDecimal; -public interface TestInterfaceWithObject { +public interface TestInterfaceWithObjectField { BigDecimal BUGS_IN_THE_DECOMPILER = BigDecimal.ZERO; } diff --git a/testData/results/TestInterfaceWithPrimitiveField.dec b/testData/results/TestInterfaceWithPrimitiveField.dec new file mode 100644 index 0000000..542e858 --- /dev/null +++ b/testData/results/TestInterfaceWithPrimitiveField.dec @@ -0,0 +1,6 @@ +package pkg; + +public interface TestInterfaceWithPrimitiveField { + int MAX_BYTE_VALUE = 127; +} + diff --git a/testData/results/TestMutableStaticOtherClass.dec b/testData/results/TestMutableStaticOtherClass.dec new file mode 100644 index 0000000..6e7ed33 --- /dev/null +++ b/testData/results/TestMutableStaticOtherClass.dec @@ -0,0 +1,27 @@ +package pkg; + +import pkg.TestClassFields; + +public class TestMutableStaticOtherClass { + private static final int SIZE; + + static { + TestClassFields.staticMutable = 3;// 12 + SIZE = TestClassFields.staticMutable;// 13 + }// 14 +} + +class 'pkg/TestMutableStaticOtherClass' { + method ' ()V' { + 0 8 + 1 8 + 4 9 + 7 9 + a 10 + } +} + +Lines mapping: +12 <-> 9 +13 <-> 10 +14 <-> 11 diff --git a/testData/src/pkg/TestClassFields.java b/testData/src/pkg/TestClassFields.java index a1f2fac..2341ff7 100644 --- a/testData/src/pkg/TestClassFields.java +++ b/testData/src/pkg/TestClassFields.java @@ -17,6 +17,7 @@ package pkg; public class TestClassFields { + static int staticMutable; private static int[] sizes; private static String[] names; diff --git a/testData/src/pkg/TestInterfaceWithObject.java b/testData/src/pkg/TestInterfaceWithObjectField.java similarity index 78% rename from testData/src/pkg/TestInterfaceWithObject.java rename to testData/src/pkg/TestInterfaceWithObjectField.java index 4653d70..ac0bd64 100644 --- a/testData/src/pkg/TestInterfaceWithObject.java +++ b/testData/src/pkg/TestInterfaceWithObjectField.java @@ -6,7 +6,7 @@ import java.math.BigDecimal; * @author Alexandru-Constantin Bledea * @since March 06, 2016 */ -public interface TestInterfaceWithObject { +public interface TestInterfaceWithObjectField { BigDecimal BUGS_IN_THE_DECOMPILER = BigDecimal.ZERO; diff --git a/testData/src/pkg/TestInterfaceWithPrimitiveField.java b/testData/src/pkg/TestInterfaceWithPrimitiveField.java new file mode 100644 index 0000000..89d1b7a --- /dev/null +++ b/testData/src/pkg/TestInterfaceWithPrimitiveField.java @@ -0,0 +1,13 @@ +package pkg; + +import java.math.BigDecimal; + +/** + * @author Alexandru-Constantin Bledea + * @since March 06, 2016 + */ +public interface TestInterfaceWithPrimitiveField { + + int MAX_BYTE_VALUE = Byte.MAX_VALUE; + +} diff --git a/testData/src/pkg/TestMutableStaticOtherClass.java b/testData/src/pkg/TestMutableStaticOtherClass.java new file mode 100644 index 0000000..4015c83 --- /dev/null +++ b/testData/src/pkg/TestMutableStaticOtherClass.java @@ -0,0 +1,15 @@ +package pkg; + +/** + * @author Alexandru-Constantin Bledea + * @since March 17, 2016 + */ +public class TestMutableStaticOtherClass { + + private static final int SIZE; + + static { + TestClassFields.staticMutable = 3; + SIZE = TestClassFields.staticMutable; + } +}