[java-decompiler] IDEA-346312 adapt patch 041

- recompile files

GitOrigin-RevId: b99823da267fe1ce8f1b2bc69504ab08841470da
This commit is contained in:
Mikhail Pyltsin
2024-10-10 09:55:49 +00:00
committed by intellij-monorepo-bot
parent aac5c6da2a
commit 5e7e5b2d33
9 changed files with 399 additions and 460 deletions
@@ -9,7 +9,9 @@ import org.jetbrains.java.decompiler.main.decompiler.PrintStreamLogger;
import org.jetbrains.java.decompiler.main.extern.IFernflowerPreferences;
import org.jetbrains.java.decompiler.util.InterpreterUtil;
import java.io.*;
import java.io.File;
import java.io.IOException;
import java.io.UncheckedIOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
@@ -121,28 +123,6 @@ public class DecompilerTestFixture {
});
}
private static void fix(Path expected, Path actual) throws IOException {
BufferedReader inputStream = new BufferedReader(new FileReader(
actual.toFile(), StandardCharsets.UTF_8));
File UIFile = expected.toFile();
// if File doesnt exists, then create it
if (!UIFile.exists()) {
UIFile.createNewFile();
}
FileWriter filewriter = new FileWriter(UIFile.getAbsoluteFile(), StandardCharsets.UTF_8);
BufferedWriter outputStream= new BufferedWriter(filewriter);
int i;
do {
i = inputStream.read();
if (i != -1) {
outputStream.write(i);
}
} while (i != -1);
outputStream.flush();
outputStream.close();
inputStream.close();
}
public static void assertFilesEqual(Path expected, Path actual) {
if (Files.isDirectory(expected)) {
try {
@@ -150,19 +130,7 @@ public class DecompilerTestFixture {
@Override
public FileVisitResult visitFile(Path expectedFile, BasicFileAttributes attrs) {
Path actualFile = actual.resolve(expected.relativize(expectedFile));
try {
assertThat(actualFile).usingCharset(StandardCharsets.UTF_8).hasSameTextualContentAs(expectedFile, StandardCharsets.UTF_8);
}
catch (AssertionError e) {
if (actualFile.toString().endsWith(".java")) {
try {
fix(expectedFile, actualFile);
}
catch (IOException ex) {
throw new RuntimeException(ex);
}
}
}
assertThat(actualFile).usingCharset(StandardCharsets.UTF_8).hasSameTextualContentAs(expectedFile, StandardCharsets.UTF_8);
return FileVisitResult.CONTINUE;
}
});
@@ -172,16 +140,7 @@ public class DecompilerTestFixture {
}
}
else {
try {
assertThat(actual).usingCharset(StandardCharsets.UTF_8).hasSameTextualContentAs(expected, StandardCharsets.UTF_8);
}catch (AssertionError e) {
try {
fix(expected, actual);
}
catch (IOException ex) {
throw new RuntimeException(ex);
}
}
assertThat(actual).usingCharset(StandardCharsets.UTF_8).hasSameTextualContentAs(expected, StandardCharsets.UTF_8);
}
}
@@ -148,7 +148,6 @@ public class SingleClassesTest extends SingleClassesTestBase {
@Test public void testSwitchWithDeconstructionsWithoutNestedJavac() { doTest("pkg/TestSwitchWithDeconstructionsWithoutNestedJavac"); }
//todo fix after merging
//todo fix ++i
//todo fix nested variables
//@Test public void testSwitchNestedDeconstructionJavac() { doTest("pkg/TestSwitchNestedDeconstructionsJavac"); }
@Test public void testSwitchWrapReturnJavac() { doTest("pkg/TestSwitchWrapReturnJavac"); }
@@ -232,7 +232,7 @@ public class o {
}
if (var1 < 0) {
var1 = var1 * -1;
var1 *= -1;
try {
if (var2.length() < var1) {
@@ -268,7 +268,7 @@ public class o {
}
if (var1 < 0) {
var1 = var1 * -1;
var1 *= -1;
try {
if (var2.length() < var1) {
@@ -171,7 +171,7 @@ public final class Integer extends Number implements Comparable<Integer> {
}
int var8;
for(int var7 = var6 / var1; var4 < var5; var2 = var2 - var8) {// 575 576 589
for(int var7 = var6 / var1; var4 < var5; var2 -= var8) {// 575 576 589
var8 = Character.digit(var0.charAt(var4++), var1);// 578
if (var8 < 0) {// 579
throw NumberFormatException.forInputString(var0);// 580
@@ -181,7 +181,7 @@ public final class Integer extends Number implements Comparable<Integer> {
throw NumberFormatException.forInputString(var0);// 583
}
var2 = var2 * var1;// 585
var2 *= var1;// 585
if (var2 < var6 + var8) {// 586
throw NumberFormatException.forInputString(var0);// 587
}
@@ -388,11 +388,11 @@ public final class Integer extends Number implements Comparable<Integer> {
}
public static int highestOneBit(int var0) {
var0 = var0 | var0 >> 1;// 1348
var0 = var0 | var0 >> 2;// 1349
var0 = var0 | var0 >> 4;// 1350
var0 = var0 | var0 >> 8;// 1351
var0 = var0 | var0 >> 16;// 1352
var0 |= var0 >> 1;// 1348
var0 |= var0 >> 2;// 1349
var0 |= var0 >> 4;// 1350
var0 |= var0 >> 8;// 1351
var0 |= var0 >> 16;// 1352
return var0 - (var0 >>> 1);// 1353
}
@@ -425,7 +425,7 @@ public final class Integer extends Number implements Comparable<Integer> {
var0 <<= 2;
}
var1 = var1 - (var0 >>> 31);// 1404
var1 -= var0 >>> 31;// 1404
return var1;// 1405
}
}
@@ -464,11 +464,11 @@ public final class Integer extends Number implements Comparable<Integer> {
}
public static int bitCount(int var0) {
var0 = var0 - (var0 >>> 1 & 1431655765);// 1446
var0 -= var0 >>> 1 & 1431655765;// 1446
var0 = (var0 & 858993459) + (var0 >>> 2 & 858993459);// 1447
var0 = var0 + (var0 >>> 4) & 252645135;// 1448
var0 = var0 + (var0 >>> 8);// 1449
var0 = var0 + (var0 >>> 16);// 1450
var0 += var0 >>> 8;// 1449
var0 += var0 >>> 16;// 1450
return var0 & 63;// 1451
}
@@ -1066,9 +1066,7 @@ class 'java/lang/Integer' {
d5 180
d6 180
d7 180
d8 183
d9 183
da 183
db 183
dc 184
dd 184
@@ -1082,10 +1080,8 @@ class 'java/lang/Integer' {
e7 185
e8 185
e9 185
ea 173
eb 173
ec 173
ed 173
ee 173
f5 191
f6 191
@@ -1674,37 +1670,27 @@ class 'java/lang/Integer' {
}
method 'highestOneBit (I)I' {
0 390
1 390
2 390
3 390
4 390
5 390
6 391
7 391
8 391
9 391
a 391
b 391
c 392
d 392
e 392
f 392
10 392
11 392
12 393
13 393
14 393
15 393
16 393
17 393
18 393
19 394
1a 394
1b 394
1c 394
1d 394
1e 394
1f 394
20 395
21 395
@@ -1772,12 +1758,10 @@ class 'java/lang/Integer' {
3e 423
40 424
42 424
43 427
44 427
45 427
46 427
47 427
48 427
49 427
4a 428
4b 428
@@ -1848,14 +1832,12 @@ class 'java/lang/Integer' {
}
method 'bitCount (I)I' {
0 466
1 466
2 466
3 466
4 466
5 466
6 466
7 466
8 466
9 467
a 467
@@ -1878,19 +1860,15 @@ class 'java/lang/Integer' {
1b 468
1c 468
1d 468
1e 469
1f 469
20 469
21 469
22 469
23 469
24 469
25 470
26 470
27 470
28 470
29 470
2a 470
2b 470
2c 471
2d 471
@@ -1,69 +1,74 @@
package pkg;
public class TestCompoundAssignment {
public int testSimple(int var1, int var2) {
var1 += var2;// 5
var1 -= var2;// 6
var1 *= var2;// 7
var1 /= var2;// 8
var1 &= var2;// 9
var1 |= var2;// 10
var1 ^= var2;// 11
var1 >>= var2;// 12
var1 <<= var2;// 13
return var1 >>> var2;// 14 16
public int testSimple(int i, int j) {
i += j;// 5
i -= j;// 6
i *= j;// 7
i /= j;// 8
i &= j;// 9
i |= j;// 10
i ^= j;// 11
i >>= j;// 12
i <<= j;// 13
i >>>= j;// 14
return i;// 16
}
public int testComplex(int var1, int var2, int var3) {
var1 += var2 + var3;// 20
var1 -= var2 + var3;// 21
var1 *= var2 + var3;// 22
var1 /= var2 + var3;// 23
var1 &= var2 + var3;// 24
var1 |= var2 + var3;// 25
var1 ^= var2 + var3;// 26
var1 >>= var2 + var3;// 27
var1 <<= var2 + var3;// 28
return var1 >>> var2 + var3;// 29 31
public int testComplex(int i, int j, int k) {
i += j + k;// 20
i -= j + k;// 21
i *= j + k;// 22
i /= j + k;// 23
i &= j + k;// 24
i |= j + k;// 25
i ^= j + k;// 26
i >>= j + k;// 27
i <<= j + k;// 28
i >>>= j + k;// 29
return i;// 31
}
public int testComplexParens(int var1, int var2, int var3, int var4) {
var1 += (var2 + var3) * var4;// 35
var1 -= (var2 + var3) * var4;// 36
var1 *= (var2 + var3) * var4;// 37
var1 /= (var2 + var3) * var4;// 38
var1 &= (var2 + var3) * var4;// 39
var1 |= (var2 + var3) * var4;// 40
var1 ^= (var2 + var3) * var4;// 41
var1 >>= (var2 + var3) * var4;// 42
var1 <<= (var2 + var3) * var4;// 43
return var1 >>> (var2 + var3) * var4;// 44 46
public int testComplexParens(int i, int j, int k, int m) {
i += (j + k) * m;// 35
i -= (j + k) * m;// 36
i *= (j + k) * m;// 37
i /= (j + k) * m;// 38
i &= (j + k) * m;// 39
i |= (j + k) * m;// 40
i ^= (j + k) * m;// 41
i >>= (j + k) * m;// 42
i <<= (j + k) * m;// 43
i >>>= (j + k) * m;// 44
return i;// 46
}
public int testComplexTernary(int var1, int var2, int var3, int var4, boolean var5) {
var1 += var5 ? var2 : var3 * var4;// 50
var1 -= var5 ? var2 : var3 * var4;// 51
var1 *= var5 ? var2 : var3 * var4;// 52
var1 /= var5 ? var2 : var3 * var4;// 53
var1 &= var5 ? var2 : var3 * var4;// 54
var1 |= var5 ? var2 : var3 * var4;// 55
var1 ^= var5 ? var2 : var3 * var4;// 56
var1 >>= var5 ? var2 : var3 * var4;// 57
var1 <<= var5 ? var2 : var3 * var4;// 58
return var1 >>> (var5 ? var2 : var3 * var4);// 59 61
public int testComplexTernary(int i, int j, int k, int m, boolean b) {
i += b ? j : k * m;// 50
i -= b ? j : k * m;// 51
i *= b ? j : k * m;// 52
i /= b ? j : k * m;// 53
i &= b ? j : k * m;// 54
i |= b ? j : k * m;// 55
i ^= b ? j : k * m;// 56
i >>= b ? j : k * m;// 57
i <<= b ? j : k * m;// 58
i >>>= b ? j : k * m;// 59
return i;// 61
}
public int testArrayOp(int var1, int var2, int[] var3, int var4) {
var1 += var3[var4] = var2;// 65
var1 -= var3[var4] = var2;// 66
var1 *= var3[var4] = var2;// 67
var1 /= var3[var4] = var2;// 68
var1 &= var3[var4] = var2;// 69
var1 |= var3[var4] = var2;// 70
var1 ^= var3[var4] = var2;// 71
var1 >>= var3[var4] = var2;// 72
var1 <<= var3[var4] = var2;// 73
return var1 >>> (var3[var4] = var2);// 74 76
public int testArrayOp(int i, int j, int[] a, int b) {
i += a[b] = j;// 65
i -= a[b] = j;// 66
i *= a[b] = j;// 67
i /= a[b] = j;// 68
i &= a[b] = j;// 69
i |= a[b] = j;// 70
i ^= a[b] = j;// 71
i >>= a[b] = j;// 72
i <<= a[b] = j;// 73
i >>>= a[b] = j;// 74
return i;// 76
}
}
@@ -87,290 +92,290 @@ class 'pkg/TestCompoundAssignment' {
1f 11
21 12
23 12
24 13
25 13
26 13
29 13
27 13
28 14
29 14
}
method 'testComplex (III)I' {
1 17
2 17
3 17
5 17
7 18
8 18
9 18
b 18
d 19
e 19
f 19
11 19
13 20
14 20
15 20
17 20
19 21
1a 21
1b 21
1d 21
1f 22
20 22
21 22
23 22
25 23
26 23
27 23
29 23
2b 24
2c 24
2d 24
2f 24
31 25
32 25
33 25
35 25
36 26
37 26
38 26
39 26
3a 26
3d 26
1 18
2 18
3 18
5 18
7 19
8 19
9 19
b 19
d 20
e 20
f 20
11 20
13 21
14 21
15 21
17 21
19 22
1a 22
1b 22
1d 22
1f 23
20 23
21 23
23 23
25 24
26 24
27 24
29 24
2b 25
2c 25
2d 25
2f 25
31 26
32 26
33 26
35 26
37 27
38 27
39 27
3b 27
3c 28
3d 28
}
method 'testComplexParens (IIII)I' {
1 30
2 30
3 30
4 30
5 30
6 30
8 30
a 31
b 31
c 31
d 31
e 31
f 31
11 31
13 32
14 32
15 32
16 32
17 32
18 32
1a 32
1c 33
1d 33
1e 33
1f 33
20 33
21 33
23 33
25 34
26 34
27 34
28 34
29 34
2a 34
2c 34
2e 35
2f 35
30 35
31 35
32 35
33 35
35 35
37 36
38 36
39 36
3a 36
3b 36
3c 36
3e 36
40 37
41 37
42 37
43 37
44 37
45 37
47 37
49 38
4a 38
4b 38
4c 38
4d 38
4e 38
50 38
51 39
52 39
53 39
54 39
55 39
56 39
57 39
58 39
5b 39
1 32
2 32
3 32
4 32
5 32
6 32
8 32
a 33
b 33
c 33
d 33
e 33
f 33
11 33
13 34
14 34
15 34
16 34
17 34
18 34
1a 34
1c 35
1d 35
1e 35
1f 35
20 35
21 35
23 35
25 36
26 36
27 36
28 36
29 36
2a 36
2c 36
2e 37
2f 37
30 37
31 37
32 37
33 37
35 37
37 38
38 38
39 38
3a 38
3b 38
3c 38
3e 38
40 39
41 39
42 39
43 39
44 39
45 39
47 39
49 40
4a 40
4b 40
4c 40
4d 40
4e 40
50 40
52 41
53 41
54 41
55 41
56 41
57 41
59 41
5a 42
5b 42
}
method 'testComplexTernary (IIIIZ)I' {
1 43
2 43
3 43
6 43
a 43
b 43
c 43
d 43
f 43
11 44
12 44
13 44
16 44
1a 44
1b 44
1c 44
1d 44
1f 44
21 45
22 45
23 45
26 45
2a 45
2b 45
2c 45
2d 45
2f 45
31 46
32 46
33 46
36 46
3a 46
3b 46
3c 46
3d 46
3f 46
41 47
42 47
43 47
46 47
4a 47
4b 47
4c 47
4d 47
4f 47
51 48
52 48
53 48
56 48
5a 48
5b 48
5c 48
5d 48
5f 48
61 49
62 49
63 49
66 49
6a 49
6b 49
6c 49
6d 49
6f 49
71 50
72 50
73 50
76 50
7a 50
7b 50
7c 50
7d 50
7f 50
81 51
82 51
83 51
86 51
8a 51
8b 51
8c 51
8d 51
8f 51
90 52
91 52
92 52
93 52
96 52
9a 52
9b 52
9c 52
9d 52
9e 52
a1 52
1 46
2 46
3 46
6 46
a 46
b 46
c 46
d 46
f 46
11 47
12 47
13 47
16 47
1a 47
1b 47
1c 47
1d 47
1f 47
21 48
22 48
23 48
26 48
2a 48
2b 48
2c 48
2d 48
2f 48
31 49
32 49
33 49
36 49
3a 49
3b 49
3c 49
3d 49
3f 49
41 50
42 50
43 50
46 50
4a 50
4b 50
4c 50
4d 50
4f 50
51 51
52 51
53 51
56 51
5a 51
5b 51
5c 51
5d 51
5f 51
61 52
62 52
63 52
66 52
6a 52
6b 52
6c 52
6d 52
6f 52
71 53
72 53
73 53
76 53
7a 53
7b 53
7c 53
7d 53
7f 53
81 54
82 54
83 54
86 54
8a 54
8b 54
8c 54
8d 54
8f 54
91 55
92 55
93 55
96 55
9a 55
9b 55
9c 55
9d 55
9f 55
a0 56
a1 56
}
method 'testArrayOp (II[II)I' {
1 56
2 56
3 56
4 56
6 56
8 56
a 57
b 57
c 57
d 57
f 57
11 57
13 58
14 58
15 58
16 58
18 58
1a 58
1c 59
1d 59
1e 59
1f 59
21 59
23 59
25 60
26 60
27 60
28 60
2a 60
2c 60
2e 61
2f 61
30 61
31 61
33 61
35 61
37 62
38 62
39 62
3a 62
3c 62
3e 62
40 63
41 63
42 63
43 63
45 63
47 63
49 64
4a 64
4b 64
4c 64
4e 64
50 64
51 65
52 65
53 65
54 65
55 65
57 65
58 65
5b 65
1 60
2 60
3 60
4 60
6 60
8 60
a 61
b 61
c 61
d 61
f 61
11 61
13 62
14 62
15 62
16 62
18 62
1a 62
1c 63
1d 63
1e 63
1f 63
21 63
23 63
25 64
26 64
27 64
28 64
2a 64
2c 64
2e 65
2f 65
30 65
31 65
33 65
35 65
37 66
38 66
39 66
3a 66
3c 66
3e 66
40 67
41 67
42 67
43 67
45 67
47 67
49 68
4a 68
4b 68
4c 68
4e 68
50 68
52 69
53 69
54 69
55 69
57 69
59 69
5a 70
5b 70
}
}
@@ -385,48 +390,48 @@ Lines mapping:
12 <-> 12
13 <-> 13
14 <-> 14
16 <-> 14
20 <-> 18
21 <-> 19
22 <-> 20
23 <-> 21
24 <-> 22
25 <-> 23
26 <-> 24
27 <-> 25
28 <-> 26
29 <-> 27
31 <-> 27
35 <-> 31
36 <-> 32
37 <-> 33
38 <-> 34
39 <-> 35
40 <-> 36
41 <-> 37
42 <-> 38
43 <-> 39
44 <-> 40
46 <-> 40
50 <-> 44
51 <-> 45
52 <-> 46
53 <-> 47
54 <-> 48
55 <-> 49
56 <-> 50
57 <-> 51
58 <-> 52
59 <-> 53
61 <-> 53
65 <-> 57
66 <-> 58
67 <-> 59
68 <-> 60
69 <-> 61
70 <-> 62
71 <-> 63
72 <-> 64
73 <-> 65
74 <-> 66
76 <-> 66
16 <-> 15
20 <-> 19
21 <-> 20
22 <-> 21
23 <-> 22
24 <-> 23
25 <-> 24
26 <-> 25
27 <-> 26
28 <-> 27
29 <-> 28
31 <-> 29
35 <-> 33
36 <-> 34
37 <-> 35
38 <-> 36
39 <-> 37
40 <-> 38
41 <-> 39
42 <-> 40
43 <-> 41
44 <-> 42
46 <-> 43
50 <-> 47
51 <-> 48
52 <-> 49
53 <-> 50
54 <-> 51
55 <-> 52
56 <-> 53
57 <-> 54
58 <-> 55
59 <-> 56
61 <-> 57
65 <-> 61
66 <-> 62
67 <-> 63
68 <-> 64
69 <-> 65
70 <-> 66
71 <-> 67
72 <-> 68
73 <-> 69
74 <-> 70
76 <-> 71
@@ -4,7 +4,7 @@ public class TestIntVarMerge {
public int test1() {
int var1 = 7;// 5
var1 = 23 * var1;// 6
var1 = var1 * 23;// 7
var1 *= 23;// 7
return var1;// 8
}
@@ -28,10 +28,8 @@ class 'pkg/TestIntVarMerge' {
5 5
6 5
7 5
8 6
9 6
a 6
b 6
c 6
d 7
e 7
@@ -17,11 +17,11 @@ public class TestSimpleInstanceOfRecordPatternJavac {
try {
if (o instanceof R(String var11)) {// 18
a = a + 34;// 19
a += 34;// 19
}
} catch (Exception var8) {// 21
if (o instanceof R(String s1)) {// 22
a = a + 34;// 23
a += 34;// 23
}
}
@@ -3,7 +3,7 @@ package pkg;
public class TestVarType {
public void byteint() {
int i = 75;
i = i + 5;
i = i + 500;
i += 5;
i += 500;
}
}