NestBasedAccessControl Anonymous Inner class support

- Added tests for anonymous inner class
- Turns out anonymous inner classes worked out of the box
- Added a simpler test to debug simple cases
- change Nest tests packaging to follow convention
(all in package named nestHostExample instead of no package)
- change Java 11 tests build to avoid committing all class files

Bug: 130529338
Change-Id: Ic69b5aa730c6168e993e5deacf3f1b7b074196b4
diff --git a/src/test/examplesJava11/nestHostExample/BasicNestHostWithAnonymousInnerClass.java b/src/test/examplesJava11/nestHostExample/BasicNestHostWithAnonymousInnerClass.java
new file mode 100644
index 0000000..f97282c
--- /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));
+  }
+}