diff options
Diffstat (limited to 'test/727-checker-unresolved-class/src/unresolved/UnresolvedClass.java')
| -rw-r--r-- | test/727-checker-unresolved-class/src/unresolved/UnresolvedClass.java | 138 |
1 files changed, 134 insertions, 4 deletions
diff --git a/test/727-checker-unresolved-class/src/unresolved/UnresolvedClass.java b/test/727-checker-unresolved-class/src/unresolved/UnresolvedClass.java index 65e072de72..73110697ac 100644 --- a/test/727-checker-unresolved-class/src/unresolved/UnresolvedClass.java +++ b/test/727-checker-unresolved-class/src/unresolved/UnresolvedClass.java @@ -22,7 +22,20 @@ import resolved.ResolvedPublicSubclassOfPackagePrivateClass; public class UnresolvedClass { public static void $noinline$main() { $noinline$testPublicFieldInResolvedPackagePrivateClass(); - $noinline$testPublicFieldInPackagePrivateClassReferencedViaResolvedPublicSubclass(); + $noinline$testPublicFieldInPackagePrivateClassViaResolvedPublicSubclass(); + $noinline$testPrivateFieldInResolvedPackagePrivateClass(); + $noinline$testPrivateFieldInPackagePrivateClassViaResolvedPublicSubclass(); + $noinline$testPackagePrivateFieldInResolvedPackagePrivateClass(); + $noinline$testPackagePrivateFieldInPackagePrivateClassViaResolvedPublicSubclass(); + + $noinline$testPublicMethodInResolvedPackagePrivateClass(); + $noinline$testPublicMethodInPackagePrivateClassViaResolvedPublicSubclass(); + $noinline$testPrivateMethodInResolvedPackagePrivateClass(); + $noinline$testPrivateMethodInPackagePrivateClassViaResolvedPublicSubclass(); + $noinline$testPackagePrivateMethodInResolvedPackagePrivateClass(); + $noinline$testPackagePrivateMethodInPackagePrivateClassViaResolvedPublicSubclass(); + + System.out.println("UnresolvedClass passed"); } /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPublicFieldInResolvedPackagePrivateClass() builder (after) @@ -37,13 +50,130 @@ public class UnresolvedClass { } catch (IllegalAccessError expected) {} } - /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPublicFieldInPackagePrivateClassReferencedViaResolvedPublicSubclass() builder (after) + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPublicFieldInPackagePrivateClassViaResolvedPublicSubclass() builder (after) /// CHECK: UnresolvedStaticFieldSet - /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPublicFieldInPackagePrivateClassReferencedViaResolvedPublicSubclass() builder (after) + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPublicFieldInPackagePrivateClassViaResolvedPublicSubclass() builder (after) /// CHECK-NOT: StaticFieldSet - static void $noinline$testPublicFieldInPackagePrivateClassReferencedViaResolvedPublicSubclass() { + static void $noinline$testPublicFieldInPackagePrivateClassViaResolvedPublicSubclass() { // TODO: Use StaticFieldSet when the referenced class is public. ResolvedPublicSubclassOfPackagePrivateClass.publicIntField = 42; } + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPrivateFieldInResolvedPackagePrivateClass() builder (after) + /// CHECK: UnresolvedStaticFieldSet + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPrivateFieldInResolvedPackagePrivateClass() builder (after) + /// CHECK-NOT: StaticFieldSet + static void $noinline$testPrivateFieldInResolvedPackagePrivateClass() { + try { + ResolvedPackagePrivateClass.privateIntField = 42; + throw new Error("Unreachable"); + } catch (IllegalAccessError expected) {} + } + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPrivateFieldInPackagePrivateClassViaResolvedPublicSubclass() builder (after) + /// CHECK: UnresolvedStaticFieldSet + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPrivateFieldInPackagePrivateClassViaResolvedPublicSubclass() builder (after) + /// CHECK-NOT: StaticFieldSet + static void $noinline$testPrivateFieldInPackagePrivateClassViaResolvedPublicSubclass() { + try { + ResolvedPublicSubclassOfPackagePrivateClass.privateIntField = 42; + throw new Error("Unreachable"); + } catch (IllegalAccessError expected) {} + } + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPackagePrivateFieldInResolvedPackagePrivateClass() builder (after) + /// CHECK: UnresolvedStaticFieldSet + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPackagePrivateFieldInResolvedPackagePrivateClass() builder (after) + /// CHECK-NOT: StaticFieldSet + static void $noinline$testPackagePrivateFieldInResolvedPackagePrivateClass() { + try { + ResolvedPackagePrivateClass.intField = 42; + throw new Error("Unreachable"); + } catch (IllegalAccessError expected) {} + } + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPackagePrivateFieldInPackagePrivateClassViaResolvedPublicSubclass() builder (after) + /// CHECK: UnresolvedStaticFieldSet + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPackagePrivateFieldInPackagePrivateClassViaResolvedPublicSubclass() builder (after) + /// CHECK-NOT: StaticFieldSet + static void $noinline$testPackagePrivateFieldInPackagePrivateClassViaResolvedPublicSubclass() { + try { + ResolvedPublicSubclassOfPackagePrivateClass.intField = 42; + throw new Error("Unreachable"); + } catch (IllegalAccessError expected) {} + } + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPublicMethodInResolvedPackagePrivateClass() builder (after) + /// CHECK: InvokeUnresolved method_name:{{[^$]*}}$noinline$publicStaticMethod + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPublicMethodInResolvedPackagePrivateClass() builder (after) + /// CHECK-NOT: InvokeStaticOrDirect method_name:{{[^$]*}}$noinline$publicStaticMethod + static void $noinline$testPublicMethodInResolvedPackagePrivateClass() { + try { + ResolvedPackagePrivateClass.$noinline$publicStaticMethod(); + throw new Error("Unreachable"); + } catch (IllegalAccessError expected) {} + } + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPublicMethodInPackagePrivateClassViaResolvedPublicSubclass() builder (after) + /// CHECK: InvokeStaticOrDirect method_name:{{[^$]*}}$noinline$publicStaticMethod + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPublicMethodInPackagePrivateClassViaResolvedPublicSubclass() builder (after) + /// CHECK-NOT: InvokeUnresolved method_name:{{[^$]*}}$noinline$publicStaticMethod + static void $noinline$testPublicMethodInPackagePrivateClassViaResolvedPublicSubclass() { + ResolvedPublicSubclassOfPackagePrivateClass.$noinline$publicStaticMethod(); + } + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPrivateMethodInResolvedPackagePrivateClass() builder (after) + /// CHECK: InvokeUnresolved method_name:{{[^$]*}}$noinline$privateStaticMethod + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPrivateMethodInResolvedPackagePrivateClass() builder (after) + /// CHECK-NOT: InvokeStaticOrDirect method_name:{{[^$]*}}$noinline$privateStaticMethod + static void $noinline$testPrivateMethodInResolvedPackagePrivateClass() { + try { + ResolvedPackagePrivateClass.$noinline$privateStaticMethod(); + throw new Error("Unreachable"); + } catch (IllegalAccessError expected) {} + } + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPrivateMethodInPackagePrivateClassViaResolvedPublicSubclass() builder (after) + /// CHECK: InvokeUnresolved method_name:{{[^$]*}}$noinline$privateStaticMethod + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPrivateMethodInPackagePrivateClassViaResolvedPublicSubclass() builder (after) + /// CHECK-NOT: InvokeStaticOrDirect method_name:{{[^$]*}}$noinline$privateStaticMethod + static void $noinline$testPrivateMethodInPackagePrivateClassViaResolvedPublicSubclass() { + try { + ResolvedPublicSubclassOfPackagePrivateClass.$noinline$privateStaticMethod(); + throw new Error("Unreachable"); + } catch (IllegalAccessError expected) {} + } + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPackagePrivateMethodInResolvedPackagePrivateClass() builder (after) + /// CHECK: InvokeUnresolved method_name:{{[^$]*}}$noinline$staticMethod + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPackagePrivateMethodInResolvedPackagePrivateClass() builder (after) + /// CHECK-NOT: InvokeStaticOrDirect method_name:{{[^$]*}}$noinline$staticMethod + static void $noinline$testPackagePrivateMethodInResolvedPackagePrivateClass() { + try { + ResolvedPackagePrivateClass.$noinline$staticMethod(); + throw new Error("Unreachable"); + } catch (IllegalAccessError expected) {} + } + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPackagePrivateMethodInPackagePrivateClassViaResolvedPublicSubclass() builder (after) + /// CHECK: InvokeUnresolved method_name:{{[^$]*}}$noinline$staticMethod + + /// CHECK-START: void unresolved.UnresolvedClass.$noinline$testPackagePrivateMethodInPackagePrivateClassViaResolvedPublicSubclass() builder (after) + /// CHECK-NOT: InvokeStaticOrDirect method_name:{{[^$]*}}$noinline$staticMethod + static void $noinline$testPackagePrivateMethodInPackagePrivateClassViaResolvedPublicSubclass() { + try { + ResolvedPublicSubclassOfPackagePrivateClass.$noinline$staticMethod(); + throw new Error("Unreachable"); + } catch (IllegalAccessError expected) {} + } } |