From 645b38d638685e576464f0159bfed1019633d497 Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Thu, 27 Apr 2017 20:11:24 +0300 Subject: [PATCH] test for already used var --- .../java/decompiler/SingleClassesTest.java | 1 + testData/classes/pkg/TestInUse.class | Bin 0 -> 535 bytes testData/results/TestInUse.dec | 53 ++++++++++++++++++ testData/src/pkg/TestInUse.java | 18 ++++++ 4 files changed, 72 insertions(+) create mode 100644 testData/classes/pkg/TestInUse.class create mode 100644 testData/results/TestInUse.dec create mode 100644 testData/src/pkg/TestInUse.java diff --git a/test/org/jetbrains/java/decompiler/SingleClassesTest.java b/test/org/jetbrains/java/decompiler/SingleClassesTest.java index 64edeed..fd71584 100644 --- a/test/org/jetbrains/java/decompiler/SingleClassesTest.java +++ b/test/org/jetbrains/java/decompiler/SingleClassesTest.java @@ -117,6 +117,7 @@ public class SingleClassesTest { //@Test public void testSwitchOnStrings() { doTest("pkg/TestSwitchOnStrings");} //@Test public void testUnionType() { doTest("pkg/TestUnionType"); } //@Test public void testInnerClassConstructor2() { doTest("pkg/TestInner2"); } + //@Test public void testInUse() { doTest("pkg/TestInUse"); } private void doTest(String testFile, String... companionFiles) { ConsoleDecompiler decompiler = fixture.getDecompiler(); diff --git a/testData/classes/pkg/TestInUse.class b/testData/classes/pkg/TestInUse.class new file mode 100644 index 0000000000000000000000000000000000000000..5f0474f830b0f79a9903c41155f25c6c3d9a7afd GIT binary patch literal 535 zcmY*W%T5A85Ukl<7F?bpBBC6;DT#9NCU7w^AwfNW+!vVO0xo19egQw?-HR7ZJoo|r zjX!|aEQDY-)7{lmRo#>QUVeT7xJ224fuaQ+2XU0*I217Jj_U+X0sZu>CtzI9hEgEg zc3gQEKJ}&7wfj?c^6lBcp7w0dQFz@nf=9qNK^N3s6b8; zYE#=C)$aRaIS6pVhZ=l1n7IT@#yC-pSun?{9}sUWG$a_+wW97Yrd9-4ND>J(kx_}y znIm4V`bxMhjcrNwwbVdnBVCZK_9^Riy`eX&@6Z~R<6(0l#8J+A`TeOVM?G4m%ymFN zgFYt5C+U*qS3)kDQe8Q%r)cbFdBY!wB6eA6R27hCrDKmy35X?3A=L5(Vh#I$=;%%3 literal 0 HcmV?d00001 diff --git a/testData/results/TestInUse.dec b/testData/results/TestInUse.dec new file mode 100644 index 0000000..c3fe83c --- /dev/null +++ b/testData/results/TestInUse.dec @@ -0,0 +1,53 @@ +package pkg; + +public class TestInUse { + public int getInt() { + return 42;// 5 + } + + protected int reuse() { + int i = 0;// 9 + int d = 0; + int result = 0;// 10 + + do { + d = this.getInt();// 12 + result -= d;// 13 + ++i;// 15 + } while(i < 10); + + return result;// 16 + } +} + +class 'pkg/TestInUse' { + method 'getInt ()I' { + 0 4 + 2 4 + } + + method 'reuse ()I' { + 0 8 + 1 8 + 2 9 + 3 9 + 4 10 + 5 10 + 7 13 + a 13 + e 14 + f 15 + 13 16 + 15 16 + 19 18 + } +} + +Lines mapping: +5 <-> 5 +9 <-> 9 +10 <-> 11 +12 <-> 14 +13 <-> 15 +15 <-> 16 +16 <-> 19 diff --git a/testData/src/pkg/TestInUse.java b/testData/src/pkg/TestInUse.java new file mode 100644 index 0000000..115274d --- /dev/null +++ b/testData/src/pkg/TestInUse.java @@ -0,0 +1,18 @@ +package pkg; + +public class TestInUse { + public int getInt() { + return 42; + } + + protected int reuse() { + int i = 0, d = 0; + int result = 0; + do { + d = getInt(); + result -= d; + } + while (++i < 10); + return result; + } +}