add additional tests for static initializers

This commit is contained in:
Alexandru-Constantin Bledea
2016-03-17 23:15:54 +02:00
parent 06c993b508
commit 1359577355
14 changed files with 76 additions and 11 deletions

Binary file not shown.

View File

@@ -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 '<clinit> ()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

View File

@@ -2,7 +2,7 @@ package pkg;
import java.math.BigDecimal;
public interface TestInterfaceWithObject {
public interface TestInterfaceWithObjectField {
BigDecimal BUGS_IN_THE_DECOMPILER = BigDecimal.ZERO;
}

View File

@@ -0,0 +1,6 @@
package pkg;
public interface TestInterfaceWithPrimitiveField {
int MAX_BYTE_VALUE = 127;
}

View File

@@ -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 '<clinit> ()V' {
0 8
1 8
4 9
7 9
a 10
}
}
Lines mapping:
12 <-> 9
13 <-> 10
14 <-> 11

View File

@@ -17,6 +17,7 @@ package pkg;
public class TestClassFields {
static int staticMutable;
private static int[] sizes;
private static String[] names;

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;
}
}