Class merging across nests

- Disable Vertical class merger when merging
  across nests or from nest to non-nest.
- Disable Horizontal class merger when merging
  a class with private methods in a nest.
- Add tests for all cases

Bug:132670472
Change-Id: Id73d28c5179d22a0b30148d4d38ca98321b5c856
diff --git a/src/test/examplesJava11/nestHostExample/NestHostInlining.java b/src/test/examplesJava11/nestHostExample/NestHostInlining.java
new file mode 100644
index 0000000..97a4398
--- /dev/null
+++ b/src/test/examplesJava11/nestHostExample/NestHostInlining.java
@@ -0,0 +1,31 @@
+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());
+  }
+}