Fix the generic class information in the documentation

If a parameter is defined like the following, the information about the items type defined for the param itself (not for each container type) should be included in the documentation:

    @Param(
      // ...
      allowedTypes = {
        @ParamType(type = Container1.class),
        @ParamType(type = Container2.class),
      },
      generic1 = Item.class,
    )

PiperOrigin-RevId: 179053750
diff --git a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkParamDoc.java b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkParamDoc.java
index aa5d85a..d61aef6 100644
--- a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkParamDoc.java
+++ b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkParamDoc.java
@@ -43,10 +43,13 @@
       StringBuilder sb = new StringBuilder();
       for (int i = 0; i < param.allowedTypes().length; i++) {
         ParamType paramType = param.allowedTypes()[i];
-        if (paramType.generic1().equals(Object.class)) {
+        // Use the paramType's generic class if provided, otherwise the param's generic class
+        Class<?> generic =
+            paramType.generic1() == Object.class ? param.generic1() : paramType.generic1();
+        if (generic.equals(Object.class)) {
           sb.append(getTypeAnchor(paramType.type()));
         } else {
-          sb.append(getTypeAnchor(paramType.type(), paramType.generic1()));
+          sb.append(getTypeAnchor(paramType.type(), generic));
         }
         if (i < param.allowedTypes().length - 1) {
           sb.append("; or ");