Add BUILD file to dagger/functional/generictypes/subpackage.

This refactor was done in preparation for migrating these sources to kotlin, which will require a BUILD file in the subpackage.

(Note: I had to move `Generic.java` and `Generic2.java` into the subpackage to avoid a cyclic dependency between sources in the two BUILD files.

RELNOTES=N/A
PiperOrigin-RevId: 500412259
diff --git a/javatests/dagger/functional/generictypes/BUILD b/javatests/dagger/functional/generictypes/BUILD
index a390618..46c7798 100644
--- a/javatests/dagger/functional/generictypes/BUILD
+++ b/javatests/dagger/functional/generictypes/BUILD
@@ -22,7 +22,10 @@
 
 GenJavaTests(
     name = "generictypes",
-    srcs = glob(["**/*.java"]),
+    srcs = glob(["*.java"]),
+    gen_library_deps = [
+        "//javatests/dagger/functional/generictypes/subpackage",
+    ],
     javacopts = DOCLINT_HTML_AND_SYNTAX,
     test_only_deps = [
         "//third_party/java/guava/collect",
diff --git a/javatests/dagger/functional/generictypes/ComplexGenerics.java b/javatests/dagger/functional/generictypes/ComplexGenerics.java
index 07a9e9b..ab77953 100644
--- a/javatests/dagger/functional/generictypes/ComplexGenerics.java
+++ b/javatests/dagger/functional/generictypes/ComplexGenerics.java
@@ -17,6 +17,8 @@
 package dagger.functional.generictypes;
 
 import dagger.Lazy;
+import dagger.functional.generictypes.subpackage.Generic;
+import dagger.functional.generictypes.subpackage.Generic2;
 import javax.inject.Inject;
 import javax.inject.Provider;
 
diff --git a/javatests/dagger/functional/generictypes/GenericTest.java b/javatests/dagger/functional/generictypes/GenericTest.java
index 68f6658..2d8ab59 100644
--- a/javatests/dagger/functional/generictypes/GenericTest.java
+++ b/javatests/dagger/functional/generictypes/GenericTest.java
@@ -20,6 +20,7 @@
 import static org.junit.Assert.assertEquals;
 
 import dagger.functional.generictypes.subpackage.Exposed;
+import dagger.functional.generictypes.subpackage.Generic;
 import dagger.functional.generictypes.subpackage.PublicSubclass;
 import java.util.ArrayList;
 import java.util.LinkedList;
diff --git a/javatests/dagger/functional/generictypes/ReferencesGeneric.java b/javatests/dagger/functional/generictypes/ReferencesGeneric.java
index 262df2d..aa333e3 100644
--- a/javatests/dagger/functional/generictypes/ReferencesGeneric.java
+++ b/javatests/dagger/functional/generictypes/ReferencesGeneric.java
@@ -16,6 +16,7 @@
 
 package dagger.functional.generictypes;
 
+import dagger.functional.generictypes.subpackage.Generic;
 import javax.inject.Inject;
 
 class ReferencesGeneric {
diff --git a/javatests/dagger/functional/generictypes/subpackage/BUILD b/javatests/dagger/functional/generictypes/subpackage/BUILD
new file mode 100644
index 0000000..6b3a309
--- /dev/null
+++ b/javatests/dagger/functional/generictypes/subpackage/BUILD
@@ -0,0 +1,30 @@
+# Copyright (C) 2023 The Dagger Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Description:
+#   Functional tests for Dagger generic types
+
+load("//:build_defs.bzl", "DOCLINT_HTML_AND_SYNTAX")
+load("//:test_defs.bzl", "GenJavaLibrary")
+
+package(default_visibility = ["//:src"])
+
+GenJavaLibrary(
+    name = "subpackage",
+    srcs = glob(["*.java"]),
+    javacopts = DOCLINT_HTML_AND_SYNTAX,
+    deps = [
+        "//:dagger_with_compiler",
+    ],
+)
diff --git a/javatests/dagger/functional/generictypes/subpackage/Exposed.java b/javatests/dagger/functional/generictypes/subpackage/Exposed.java
index af66d59..756b1bb 100644
--- a/javatests/dagger/functional/generictypes/subpackage/Exposed.java
+++ b/javatests/dagger/functional/generictypes/subpackage/Exposed.java
@@ -17,8 +17,6 @@
 package dagger.functional.generictypes.subpackage;
 
 import dagger.Lazy;
-import dagger.functional.generictypes.Generic;
-import dagger.functional.generictypes.Generic2;
 import javax.inject.Inject;
 import javax.inject.Provider;
 
diff --git a/javatests/dagger/functional/generictypes/Generic.java b/javatests/dagger/functional/generictypes/subpackage/Generic.java
similarity index 87%
rename from javatests/dagger/functional/generictypes/Generic.java
rename to javatests/dagger/functional/generictypes/subpackage/Generic.java
index 9cdbe1d..b42b00a 100644
--- a/javatests/dagger/functional/generictypes/Generic.java
+++ b/javatests/dagger/functional/generictypes/subpackage/Generic.java
@@ -14,14 +14,15 @@
  * limitations under the License.
  */
 
-package dagger.functional.generictypes;
+package dagger.functional.generictypes.subpackage;
 
 import javax.inject.Inject;
 
 public class Generic<T> {
-  final T t;
+  public final T t;
 
-  @Inject public Generic(T t) {
+  @Inject
+  Generic(T t) {
     this.t = t;
   }
 }
diff --git a/javatests/dagger/functional/generictypes/Generic2.java b/javatests/dagger/functional/generictypes/subpackage/Generic2.java
similarity index 93%
rename from javatests/dagger/functional/generictypes/Generic2.java
rename to javatests/dagger/functional/generictypes/subpackage/Generic2.java
index 2130754..413e899 100644
--- a/javatests/dagger/functional/generictypes/Generic2.java
+++ b/javatests/dagger/functional/generictypes/subpackage/Generic2.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package dagger.functional.generictypes;
+package dagger.functional.generictypes.subpackage;
 
 import javax.inject.Inject;
 
diff --git a/javatests/dagger/functional/generictypes/subpackage/PublicSubclass.java b/javatests/dagger/functional/generictypes/subpackage/PublicSubclass.java
index 1b3ba88..007beb2 100644
--- a/javatests/dagger/functional/generictypes/subpackage/PublicSubclass.java
+++ b/javatests/dagger/functional/generictypes/subpackage/PublicSubclass.java
@@ -16,11 +16,11 @@
 
 package dagger.functional.generictypes.subpackage;
 
-import dagger.functional.generictypes.Generic;
 import javax.inject.Inject;
 
 public class PublicSubclass extends Generic<PackagePrivate> {
-  @Inject public PublicSubclass(PackagePrivate pp) {
+  @Inject
+  PublicSubclass(PackagePrivate pp) {
     super(pp);
   }
 }
diff --git a/javatests/dagger/functional/generictypes/subpackage/PublicSubclass2.java b/javatests/dagger/functional/generictypes/subpackage/PublicSubclass2.java
index b159ea7..c0e7e79 100644
--- a/javatests/dagger/functional/generictypes/subpackage/PublicSubclass2.java
+++ b/javatests/dagger/functional/generictypes/subpackage/PublicSubclass2.java
@@ -16,7 +16,6 @@
 
 package dagger.functional.generictypes.subpackage;
 
-import dagger.functional.generictypes.Generic;
 import javax.inject.Inject;
 
 public class PublicSubclass2 extends Generic<PackagePrivateContainer.PublicEnclosed> {