diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/529-checker-unresolved/src/Main.java | 114 | ||||
| -rw-r--r-- | test/529-checker-unresolved/src/Unresolved.java | 16 |
2 files changed, 130 insertions, 0 deletions
diff --git a/test/529-checker-unresolved/src/Main.java b/test/529-checker-unresolved/src/Main.java index 6f047974b3..adb5adae82 100644 --- a/test/529-checker-unresolved/src/Main.java +++ b/test/529-checker-unresolved/src/Main.java @@ -44,6 +44,76 @@ public class Main extends UnresolvedSuperClass { super.superMethod(); } + /// CHECK-START: void Main.callUnresolvedStaticFieldAccess() register (before) + /// CHECK: UnresolvedStaticFieldSet field_type:PrimByte + /// CHECK: UnresolvedStaticFieldSet field_type:PrimChar + /// CHECK: UnresolvedStaticFieldSet field_type:PrimInt + /// CHECK: UnresolvedStaticFieldSet field_type:PrimLong + /// CHECK: UnresolvedStaticFieldSet field_type:PrimFloat + /// CHECK: UnresolvedStaticFieldSet field_type:PrimDouble + /// CHECK: UnresolvedStaticFieldSet field_type:PrimNot + + /// CHECK: UnresolvedStaticFieldGet field_type:PrimByte + /// CHECK: UnresolvedStaticFieldGet field_type:PrimChar + /// CHECK: UnresolvedStaticFieldGet field_type:PrimInt + /// CHECK: UnresolvedStaticFieldGet field_type:PrimLong + /// CHECK: UnresolvedStaticFieldGet field_type:PrimFloat + /// CHECK: UnresolvedStaticFieldGet field_type:PrimDouble + /// CHECK: UnresolvedStaticFieldGet field_type:PrimNot + static public void callUnresolvedStaticFieldAccess() { + Object o = new Object(); + UnresolvedClass.staticByte = (byte)1; + UnresolvedClass.staticChar = '1'; + UnresolvedClass.staticInt = 123456789; + UnresolvedClass.staticLong = 123456789123456789l; + UnresolvedClass.staticFloat = 123456789123456789f; + UnresolvedClass.staticDouble = 123456789123456789d; + UnresolvedClass.staticObject = o; + + expectEquals((byte)1, UnresolvedClass.staticByte); + expectEquals('1', UnresolvedClass.staticChar); + expectEquals(123456789, UnresolvedClass.staticInt); + expectEquals(123456789123456789l, UnresolvedClass.staticLong); + expectEquals(123456789123456789f, UnresolvedClass.staticFloat); + expectEquals(123456789123456789d, UnresolvedClass.staticDouble); + expectEquals(o, UnresolvedClass.staticObject); + } + + /// CHECK-START: void Main.callUnresolvedInstanceFieldAccess(UnresolvedClass) register (before) + /// CHECK: UnresolvedInstanceFieldSet field_type:PrimByte + /// CHECK: UnresolvedInstanceFieldSet field_type:PrimChar + /// CHECK: UnresolvedInstanceFieldSet field_type:PrimInt + /// CHECK: UnresolvedInstanceFieldSet field_type:PrimLong + /// CHECK: UnresolvedInstanceFieldSet field_type:PrimFloat + /// CHECK: UnresolvedInstanceFieldSet field_type:PrimDouble + /// CHECK: UnresolvedInstanceFieldSet field_type:PrimNot + + /// CHECK: UnresolvedInstanceFieldGet field_type:PrimByte + /// CHECK: UnresolvedInstanceFieldGet field_type:PrimChar + /// CHECK: UnresolvedInstanceFieldGet field_type:PrimInt + /// CHECK: UnresolvedInstanceFieldGet field_type:PrimLong + /// CHECK: UnresolvedInstanceFieldGet field_type:PrimFloat + /// CHECK: UnresolvedInstanceFieldGet field_type:PrimDouble + /// CHECK: UnresolvedInstanceFieldGet field_type:PrimNot + static public void callUnresolvedInstanceFieldAccess(UnresolvedClass c) { + Object o = new Object(); + c.instanceByte = (byte)1; + c.instanceChar = '1'; + c.instanceInt = 123456789; + c.instanceLong = 123456789123456789l; + c.instanceFloat = 123456789123456789f; + c.instanceDouble = 123456789123456789d; + c.instanceObject = o; + + expectEquals((byte)1, c.instanceByte); + expectEquals('1', c.instanceChar); + expectEquals(123456789, c.instanceInt); + expectEquals(123456789123456789l, c.instanceLong); + expectEquals(123456789123456789f, c.instanceFloat); + expectEquals(123456789123456789d, c.instanceDouble); + expectEquals(o, c.instanceObject); + } + /// CHECK-START: void Main.main(java.lang.String[]) register (before) /// CHECK: InvokeUnresolved invoke_type:direct static public void main(String[] args) { @@ -52,5 +122,49 @@ public class Main extends UnresolvedSuperClass { callInvokeUnresolvedVirtual(c); callInvokeUnresolvedInterface(c); callInvokeUnresolvedSuper(new Main()); + callUnresolvedStaticFieldAccess(); + callUnresolvedInstanceFieldAccess(c); + } + + public static void expectEquals(byte expected, byte result) { + if (expected != result) { + throw new Error("Expected: " + expected + ", found: " + result); + } + } + + public static void expectEquals(char expected, char result) { + if (expected != result) { + throw new Error("Expected: " + expected + ", found: " + result); + } + } + + public static void expectEquals(int expected, int result) { + if (expected != result) { + throw new Error("Expected: " + expected + ", found: " + result); + } + } + + public static void expectEquals(long expected, long result) { + if (expected != result) { + throw new Error("Expected: " + expected + ", found: " + result); + } + } + + public static void expectEquals(float expected, float result) { + if (expected != result) { + throw new Error("Expected: " + expected + ", found: " + result); + } + } + + public static void expectEquals(double expected, double result) { + if (expected != result) { + throw new Error("Expected: " + expected + ", found: " + result); + } + } + + public static void expectEquals(Object expected, Object result) { + if (expected != result) { + throw new Error("Expected: " + expected + ", found: " + result); + } } } diff --git a/test/529-checker-unresolved/src/Unresolved.java b/test/529-checker-unresolved/src/Unresolved.java index 5bf92dd331..03ceb6857b 100644 --- a/test/529-checker-unresolved/src/Unresolved.java +++ b/test/529-checker-unresolved/src/Unresolved.java @@ -40,6 +40,22 @@ class UnresolvedClass extends UnresolvedSuperClass implements UnresolvedInterfac public void interfaceMethod() { System.out.println("UnresolvedClass.interfaceMethod()"); } + + public static byte staticByte; + public static char staticChar; + public static int staticInt; + public static long staticLong; + public static float staticFloat; + public static double staticDouble; + public static Object staticObject; + + public byte instanceByte; + public char instanceChar; + public int instanceInt; + public long instanceLong; + public float instanceFloat; + public double instanceDouble; + public Object instanceObject; } final class UnresolvedFinalClass { |