Rename test package to lower case
Change-Id: I892c99d0c9a40e407e3522ff2ae8eecc202d2937
diff --git a/src/test/examplesJava11/nesthostexample/BasicNestHostClassMerging.java b/src/test/examplesJava11/nesthostexample/BasicNestHostClassMerging.java
new file mode 100644
index 0000000..6e511a0
--- /dev/null
+++ b/src/test/examplesJava11/nesthostexample/BasicNestHostClassMerging.java
@@ -0,0 +1,37 @@
+// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package nesthostexample;
+
+public class BasicNestHostClassMerging {
+
+ private String field = "Outer";
+
+ public static class MiddleOuter extends BasicNestHostClassMerging {
+
+ private String field = "Middle";
+
+ public static void main(String[] args) {
+ System.out.println(new InnerMost().getFields());
+ }
+ }
+
+ public static class MiddleInner extends MiddleOuter {
+ private String field = "Inner";
+ }
+
+ public static class InnerMost extends MiddleInner {
+
+ @NeverInline
+ public String getFields() {
+ return ((BasicNestHostClassMerging) this).field
+ + ((MiddleOuter) this).field
+ + ((MiddleInner) this).field;
+ }
+ }
+
+ public static void main(String[] args) {
+ System.out.println(new InnerMost().getFields());
+ }
+}
diff --git a/src/test/examplesJava11/nesthostexample/BasicNestHostTreePruning.java b/src/test/examplesJava11/nesthostexample/BasicNestHostTreePruning.java
new file mode 100644
index 0000000..07ec806
--- /dev/null
+++ b/src/test/examplesJava11/nesthostexample/BasicNestHostTreePruning.java
@@ -0,0 +1,29 @@
+// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package nesthostexample;
+
+public class BasicNestHostTreePruning {
+
+ private String field = "NotPruned";
+
+ public static class NotPruned extends BasicNestHostTreePruning {
+
+ @NeverInline
+ public String getFields() {
+ return ((BasicNestHostTreePruning) this).field;
+ }
+ }
+
+ public static class Pruned {
+
+ public static void main(String[] args) {
+ System.out.println("NotPruned");
+ }
+ }
+
+ public static void main(String[] args) {
+ System.out.println(new NotPruned().getFields());
+ }
+}
diff --git a/src/test/examplesJava11/nesthostexample/BasicNestHostWithAnonymousInnerClass.java b/src/test/examplesJava11/nesthostexample/BasicNestHostWithAnonymousInnerClass.java
new file mode 100644
index 0000000..f014507
--- /dev/null
+++ b/src/test/examplesJava11/nesthostexample/BasicNestHostWithAnonymousInnerClass.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package nesthostexample;
+
+public class BasicNestHostWithAnonymousInnerClass {
+
+ private String method() {
+ return "hostMethod";
+ }
+
+ private static String staticMethod() {
+ return "staticHostMethod";
+ }
+
+ private String field = "field";
+ private static String staticField = "staticField";
+
+ public static InterfaceForAnonymousClass createAnonymousNestedInstance() {
+ return new InterfaceForAnonymousClass() {
+ public String accessOuter(BasicNestHostWithAnonymousInnerClass o) {
+ return o.field
+ + o.staticField
+ + BasicNestHostWithAnonymousInnerClass.staticField
+ + o.method()
+ + o.staticMethod()
+ + BasicNestHostWithAnonymousInnerClass.staticMethod();
+ }
+ };
+ }
+
+ public interface InterfaceForAnonymousClass {
+ String accessOuter(BasicNestHostWithAnonymousInnerClass o);
+ }
+
+ public static void main(String[] args) {
+ BasicNestHostWithAnonymousInnerClass outer = new BasicNestHostWithAnonymousInnerClass();
+ InterfaceForAnonymousClass anonymousInner =
+ BasicNestHostWithAnonymousInnerClass.createAnonymousNestedInstance();
+ System.out.println(anonymousInner.accessOuter(outer));
+ }
+}
diff --git a/src/test/examplesJava11/nesthostexample/BasicNestHostWithInnerClassConstructors.java b/src/test/examplesJava11/nesthostexample/BasicNestHostWithInnerClassConstructors.java
new file mode 100644
index 0000000..f3ee216
--- /dev/null
+++ b/src/test/examplesJava11/nesthostexample/BasicNestHostWithInnerClassConstructors.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package nesthostexample;
+
+public class BasicNestHostWithInnerClassConstructors {
+
+ public String field;
+
+ private BasicNestHostWithInnerClassConstructors(String field) {
+ this.field = field;
+ }
+
+ private BasicNestHostWithInnerClassConstructors(int intVal) {
+ this.field = String.valueOf(intVal);
+ }
+
+ public static BasicNestedClass createNestedInstance(String field) {
+ return new BasicNestedClass(field);
+ }
+
+ public static class BasicNestedClass {
+
+ public String field;
+
+ private BasicNestedClass(String field) {
+ this.field = field;
+ }
+
+ private BasicNestedClass(String unused, String field, String alsoUnused) {
+ this.field = field + "UnusedConstructor";
+ }
+
+ public static BasicNestHostWithInnerClassConstructors createOuterInstance(String field) {
+ return new BasicNestHostWithInnerClassConstructors(field);
+ }
+ }
+
+ public static void main(String[] args) {
+ BasicNestHostWithInnerClassConstructors outer = BasicNestedClass.createOuterInstance("field");
+ BasicNestedClass inner =
+ BasicNestHostWithInnerClassConstructors.createNestedInstance("nest1SField");
+ BasicNestHostWithInnerClassConstructors noBridge =
+ new BasicNestHostWithInnerClassConstructors(1);
+ BasicNestedClass unusedParamConstructor =
+ new BasicNestedClass("unused", "innerField", "alsoUnused");
+
+ System.out.println(outer.field);
+ System.out.println(inner.field);
+ System.out.println(noBridge.field);
+ System.out.println(unusedParamConstructor.field);
+ }
+}
diff --git a/src/test/examplesJava11/nesthostexample/BasicNestHostWithInnerClassFields.java b/src/test/examplesJava11/nesthostexample/BasicNestHostWithInnerClassFields.java
new file mode 100644
index 0000000..a174723
--- /dev/null
+++ b/src/test/examplesJava11/nesthostexample/BasicNestHostWithInnerClassFields.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package nesthostexample;
+
+public class BasicNestHostWithInnerClassFields {
+
+ private String fieldWithoutBridge = "noBridge";
+ private String field = "field";
+ private static String staticField = "staticField";
+
+ @SuppressWarnings("static-access") // we want to test that too.
+ public String accessNested(BasicNestedClass o) {
+ o.field = "RW" + o.field;
+ o.staticField = "RW" + o.field;
+ return o.field + o.staticField + BasicNestedClass.staticField + fieldWithoutBridge;
+ }
+
+ public static class BasicNestedClass {
+
+ private String field = "nestField";
+ private static String staticField = "staticNestField";
+
+ @SuppressWarnings("static-access") // we want to test that too.
+ public String accessOuter(BasicNestHostWithInnerClassFields o) {
+ o.field = "RW" + o.field;
+ o.staticField = "RW" + o.field;
+ return o.field + o.staticField + BasicNestedClass.staticField;
+ }
+ }
+
+ public static void main(String[] args) {
+ BasicNestHostWithInnerClassFields outer = new BasicNestHostWithInnerClassFields();
+ BasicNestedClass inner = new BasicNestedClass();
+
+ System.out.println(outer.accessNested(inner));
+ System.out.println(inner.accessOuter(outer));
+ }
+}
diff --git a/src/test/examplesJava11/nesthostexample/BasicNestHostWithInnerClassMethods.java b/src/test/examplesJava11/nesthostexample/BasicNestHostWithInnerClassMethods.java
new file mode 100644
index 0000000..e22088a
--- /dev/null
+++ b/src/test/examplesJava11/nesthostexample/BasicNestHostWithInnerClassMethods.java
@@ -0,0 +1,48 @@
+// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package nesthostexample;
+
+public class BasicNestHostWithInnerClassMethods {
+
+ private String methodWithoutBridge() {
+ return "noBridge";
+ }
+
+ private String method() {
+ return "hostMethod";
+ }
+
+ private static String staticMethod() {
+ return "staticHostMethod";
+ }
+
+ @SuppressWarnings("static-access") // we want to test that too.
+ public String accessNested(BasicNestedClass o) {
+ return o.method() + o.staticMethod() + BasicNestedClass.staticMethod() + methodWithoutBridge();
+ }
+
+ public static class BasicNestedClass {
+ private String method() {
+ return "nestMethod";
+ }
+
+ private static String staticMethod() {
+ return "staticNestMethod";
+ }
+
+ @SuppressWarnings("static-access") // we want to test that too.
+ public String accessOuter(BasicNestHostWithInnerClassMethods o) {
+ return o.method() + o.staticMethod() + BasicNestedClass.staticMethod();
+ }
+ }
+
+ public static void main(String[] args) {
+ BasicNestHostWithInnerClassMethods outer = new BasicNestHostWithInnerClassMethods();
+ BasicNestedClass inner = new BasicNestedClass();
+
+ System.out.println(outer.accessNested(inner));
+ System.out.println(inner.accessOuter(outer));
+ }
+}
diff --git a/src/test/examplesJava11/nesthostexample/NestHostExample.java b/src/test/examplesJava11/nesthostexample/NestHostExample.java
new file mode 100644
index 0000000..3aa3546
--- /dev/null
+++ b/src/test/examplesJava11/nesthostexample/NestHostExample.java
@@ -0,0 +1,316 @@
+// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package nesthostexample;
+
+
+// Warning: This requires Java 9+ to be compiled (private interface methods)
+// This file builds all the possible combinations of private members:
+// - static VS non-static
+// - fields VS methods
+// - multiple nesting levels
+// - nested interfaces
+// Note: Inner interfaces have to be static.
+// Then the accessPrivate methods generate all possibles calls.
+// Each instance is created through a private constructor to test them too.
+@SuppressWarnings("WeakerAccess")
+public class NestHostExample {
+
+ private String method() {
+ return "hostMethod";
+ }
+
+ private static String staticMethod() {
+ return "staticHostMethod";
+ }
+
+ private String field;
+ private static String staticField = "staticField";
+
+ private NestHostExample(String field) {
+ this.field = field;
+ }
+
+ public StaticNestMemberInner createStaticNestMemberInner(String field) {
+ return new StaticNestMemberInner(field);
+ }
+
+ public NestMemberInner createNestMemberInner(String field) {
+ return new NestMemberInner(field);
+ }
+
+ @SuppressWarnings("static-access") // we want to test that too.
+ public String accessPrivate(
+ NestHostExample o0,
+ StaticNestMemberInner o1,
+ StaticNestMemberInner.StaticNestMemberInnerInner o2,
+ NestMemberInner o3,
+ NestMemberInner.NestMemberInnerInner o4) {
+ return join(
+ ", ",
+ new String[] {
+ o0.field,
+ o0.staticField,
+ NestHostExample.staticField,
+ o0.method(),
+ o0.staticMethod(),
+ NestHostExample.staticMethod(),
+ o1.field,
+ o1.staticField,
+ StaticNestMemberInner.staticField,
+ o1.method(),
+ o1.staticMethod(),
+ StaticNestMemberInner.staticMethod(),
+ o2.field,
+ o2.staticField,
+ StaticNestMemberInner.StaticNestMemberInnerInner.staticField,
+ o2.method(),
+ o2.staticMethod(),
+ StaticNestMemberInner.StaticNestMemberInnerInner.staticMethod(),
+ o3.field,
+ o3.method(),
+ o4.field,
+ o4.method()
+ });
+ }
+
+ public String accessPrivateInterface(StaticNestInterfaceInner i1) {
+ return i1.interfaceMethod() + StaticNestInterfaceInner.staticInterfaceMethod();
+ }
+
+ // Nested interface (has to be static)
+ public interface StaticNestInterfaceInner {
+
+ private String interfaceMethod() {
+ return "staticInterfaceMethod";
+ }
+
+ private static String staticInterfaceMethod() {
+ return "staticStaticInterfaceMethod";
+ }
+
+ public static NestHostExample createNestHostExample(String field) {
+ return new NestHostExample(field);
+ }
+
+ @SuppressWarnings("static-access") // we want to test that too.
+ default String accessPrivate(
+ NestHostExample o0,
+ StaticNestMemberInner o1,
+ StaticNestMemberInner.StaticNestMemberInnerInner o2,
+ NestMemberInner o3,
+ NestMemberInner.NestMemberInnerInner o4) {
+ return join(
+ ", ",
+ new String[] {
+ o0.field,
+ o0.staticField,
+ NestHostExample.staticField,
+ o0.method(),
+ o0.staticMethod(),
+ NestHostExample.staticMethod(),
+ o1.field,
+ o1.staticField,
+ StaticNestMemberInner.staticField,
+ o1.method(),
+ o1.staticMethod(),
+ StaticNestMemberInner.staticMethod(),
+ o2.field,
+ o2.staticField,
+ StaticNestMemberInner.StaticNestMemberInnerInner.staticField,
+ o2.method(),
+ o2.staticMethod(),
+ StaticNestMemberInner.StaticNestMemberInnerInner.staticMethod(),
+ o3.field,
+ o3.method(),
+ o4.field,
+ o4.method()
+ });
+ }
+
+ default String accessPrivateInterface(StaticNestInterfaceInner i1) {
+ return i1.interfaceMethod() + StaticNestInterfaceInner.staticInterfaceMethod();
+ }
+ }
+
+ // Static Nest mates
+ public static class StaticNestMemberInner {
+
+ private String method() {
+ return "nest1SMethod";
+ }
+
+ private static String staticMethod() {
+ return "staticNest1SMethod";
+ }
+
+ private String field;
+ private static String staticField = "staticNest1SField";
+
+ private StaticNestMemberInner(String field) {
+ this.field = field;
+ }
+
+ public static StaticNestMemberInnerInner createStaticNestMemberInnerInner(String field) {
+ return new StaticNestMemberInnerInner(field);
+ }
+
+ public static class StaticNestMemberInnerInner implements StaticNestInterfaceInner {
+
+ private String method() {
+ return "nest2SMethod";
+ }
+
+ private static String staticMethod() {
+ return "staticNest2SMethod";
+ }
+
+ private String field;
+ private static String staticField = "staticNest2SField";
+
+ private StaticNestMemberInnerInner(String field) {
+ this.field = field;
+ }
+
+ @SuppressWarnings("static-access") // we want to test that too.
+ public String accessPrivate(
+ NestHostExample o0,
+ StaticNestMemberInner o1,
+ StaticNestMemberInner.StaticNestMemberInnerInner o2,
+ NestMemberInner o3,
+ NestMemberInner.NestMemberInnerInner o4) {
+ return join(
+ ", ",
+ new String[] {
+ o0.field,
+ o0.staticField,
+ NestHostExample.staticField,
+ o0.method(),
+ o0.staticMethod(),
+ NestHostExample.staticMethod(),
+ o1.field,
+ o1.staticField,
+ StaticNestMemberInner.staticField,
+ o1.method(),
+ o1.staticMethod(),
+ StaticNestMemberInner.staticMethod(),
+ o2.field,
+ o2.staticField,
+ StaticNestMemberInner.StaticNestMemberInnerInner.staticField,
+ o2.method(),
+ o2.staticMethod(),
+ StaticNestMemberInner.StaticNestMemberInnerInner.staticMethod(),
+ o3.field,
+ o3.method(),
+ o4.field,
+ o4.method()
+ });
+ }
+
+ public String accessPrivateInterface(StaticNestInterfaceInner i1) {
+ return i1.interfaceMethod() + StaticNestInterfaceInner.staticInterfaceMethod();
+ }
+ }
+ }
+
+ // Non static Nest mates
+ public class NestMemberInner {
+
+ private String method() {
+ return "nest1Method";
+ }
+
+ private String field;
+
+ private NestMemberInner(String field) {
+ this.field = field;
+ }
+
+ public NestMemberInnerInner createNestMemberInnerInner(String field) {
+ return new NestMemberInnerInner(field);
+ }
+
+ public class NestMemberInnerInner {
+
+ private String method() {
+ return "nest2Method";
+ }
+
+ private String field;
+
+ private NestMemberInnerInner(String field) {
+ this.field = field;
+ }
+
+ @SuppressWarnings("static-access") // we want to test that too.
+ public String accessPrivate(
+ NestHostExample o0,
+ StaticNestMemberInner o1,
+ StaticNestMemberInner.StaticNestMemberInnerInner o2,
+ NestMemberInner o3,
+ NestMemberInner.NestMemberInnerInner o4) {
+ return join(
+ ", ",
+ new String[] {
+ o0.field,
+ o0.staticField,
+ NestHostExample.staticField,
+ o0.method(),
+ o0.staticMethod(),
+ NestHostExample.staticMethod(),
+ o1.field,
+ o1.staticField,
+ StaticNestMemberInner.staticField,
+ o1.method(),
+ o1.staticMethod(),
+ StaticNestMemberInner.staticMethod(),
+ o2.field,
+ o2.staticField,
+ StaticNestMemberInner.StaticNestMemberInnerInner.staticField,
+ o2.method(),
+ o2.staticMethod(),
+ StaticNestMemberInner.StaticNestMemberInnerInner.staticMethod(),
+ o3.field,
+ o3.method(),
+ o4.field,
+ o4.method()
+ });
+ }
+
+ public String accessPrivateInterface(StaticNestInterfaceInner i1) {
+ return i1.interfaceMethod() + StaticNestInterfaceInner.staticInterfaceMethod();
+ }
+ }
+ }
+
+ public static String join(String separator, String[] strings) {
+ StringBuilder sb = new StringBuilder(strings[0]);
+ for (int i = 1; i < strings.length; i++) {
+ sb.append(separator).append(strings[i]);
+ }
+ return sb.toString();
+ }
+
+ @SuppressWarnings("all") // do not know how to remove the redundant i1 variable
+ public static void main(String[] args) {
+ NestHostExample o0 = StaticNestInterfaceInner.createNestHostExample("field");
+ StaticNestMemberInner o1 = o0.createStaticNestMemberInner("nest1SField");
+ StaticNestMemberInner.StaticNestMemberInnerInner o2 =
+ o1.createStaticNestMemberInnerInner("nest2SField");
+ NestMemberInner o3 = o0.createNestMemberInner("nest1Field");
+ NestMemberInner.NestMemberInnerInner o4 = o3.createNestMemberInnerInner("nest2Field");
+
+ StaticNestInterfaceInner i1 = o2;
+
+ System.out.println(o0.accessPrivate(o0, o1, o2, o3, o4));
+ System.out.println(o2.accessPrivate(o0, o1, o2, o3, o4));
+ System.out.println(o4.accessPrivate(o0, o1, o2, o3, o4));
+ System.out.println(i1.accessPrivate(o0, o1, o2, o3, o4));
+
+ System.out.println(o0.accessPrivateInterface(i1));
+ System.out.println(o2.accessPrivateInterface(i1));
+ System.out.println(o4.accessPrivateInterface(i1));
+ System.out.println(i1.accessPrivateInterface(i1));
+ }
+}
diff --git a/src/test/examplesJava11/nesthostexample/NestHostInlining.java b/src/test/examplesJava11/nesthostexample/NestHostInlining.java
new file mode 100644
index 0000000..4748927
--- /dev/null
+++ b/src/test/examplesJava11/nesthostexample/NestHostInlining.java
@@ -0,0 +1,35 @@
+// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package nesthostexample;
+
+public class NestHostInlining {
+
+ private String field = "inlining";
+
+ public static class InnerWithPrivAccess {
+ public String access(NestHostInlining host) {
+ return host.field;
+ }
+ }
+
+ public static class InnerNoPrivAccess {
+ public String print() {
+ return "InnerNoPrivAccess";
+ }
+ }
+
+ public abstract static class EmptyNoPrivAccess {}
+
+ public abstract static class EmptyWithPrivAccess {
+ public String access(NestHostInlining host) {
+ return host.field;
+ }
+ }
+
+ public static void main(String[] args) {
+ System.out.println(new InnerWithPrivAccess().access(new NestHostInlining()));
+ System.out.println(new InnerNoPrivAccess().print());
+ }
+}
diff --git a/src/test/examplesJava11/nesthostexample/NestHostInliningSubclasses.java b/src/test/examplesJava11/nesthostexample/NestHostInliningSubclasses.java
new file mode 100644
index 0000000..a6283a0
--- /dev/null
+++ b/src/test/examplesJava11/nesthostexample/NestHostInliningSubclasses.java
@@ -0,0 +1,26 @@
+// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package nesthostexample;
+
+public class NestHostInliningSubclasses {
+
+ public static class InnerWithPrivAccess extends NestHostInlining.InnerWithPrivAccess {
+ public String accessSubclass(NestHostInlining host) {
+ return super.access(host) + "Subclass";
+ }
+ }
+
+ public static class InnerNoPrivAccess extends NestHostInlining.InnerNoPrivAccess {
+ @NeverInline
+ public String printSubclass() {
+ return super.print() + "Subclass";
+ }
+ }
+
+ public static void main(String[] args) {
+ System.out.println(new InnerWithPrivAccess().accessSubclass(new NestHostInlining()));
+ System.out.println(new InnerNoPrivAccess().printSubclass());
+ }
+}
diff --git a/src/test/examplesJava11/nesthostexample/NeverInline.java b/src/test/examplesJava11/nesthostexample/NeverInline.java
new file mode 100644
index 0000000..d800658
--- /dev/null
+++ b/src/test/examplesJava11/nesthostexample/NeverInline.java
@@ -0,0 +1,11 @@
+// Copyright (c) 2018, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package nesthostexample;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+@Target({ElementType.METHOD})
+public @interface NeverInline {}
diff --git a/src/test/examplesJava11/nesthostexample/OutsideInliningNoAccess.java b/src/test/examplesJava11/nesthostexample/OutsideInliningNoAccess.java
new file mode 100644
index 0000000..86da4b1
--- /dev/null
+++ b/src/test/examplesJava11/nesthostexample/OutsideInliningNoAccess.java
@@ -0,0 +1,12 @@
+// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package nesthostexample;
+
+public class OutsideInliningNoAccess extends NestHostInlining.EmptyNoPrivAccess {
+
+ public static void main(String[] args) {
+ System.out.println("OutsideInliningNoAccess");
+ }
+}
diff --git a/src/test/examplesJava11/nesthostexample/OutsideInliningWithAccess.java b/src/test/examplesJava11/nesthostexample/OutsideInliningWithAccess.java
new file mode 100644
index 0000000..c81e437
--- /dev/null
+++ b/src/test/examplesJava11/nesthostexample/OutsideInliningWithAccess.java
@@ -0,0 +1,13 @@
+// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package nesthostexample;
+
+public class OutsideInliningWithAccess extends NestHostInlining.EmptyWithPrivAccess {
+
+ public static void main(String[] args) {
+ System.out.println("OutsideInliningNoAccess");
+ System.out.println(new OutsideInliningWithAccess().access(new NestHostInlining()));
+ }
+}