Resolve whether parameter types are actually type variables.
am: 59db07aeb9

Change-Id: I77a8bc714298ac31a8caf36de5c2d5330c235ed9
diff --git a/src/com/google/doclava/TypeInfo.java b/src/com/google/doclava/TypeInfo.java
index ad26def..689ff88 100644
--- a/src/com/google/doclava/TypeInfo.java
+++ b/src/com/google/doclava/TypeInfo.java
@@ -54,7 +54,6 @@
         if (c == ',' && bracketNesting == 0) {
           String entry = typeString.substring(entryStartPos, i).trim();
           TypeInfo info = new TypeInfo(entry);
-          info.setIsTypeVariable(true);
           generics.add(info);
           entryStartPos = i + 1;
         } else if (c == '<') {
@@ -70,8 +69,8 @@
       }
 
       TypeInfo info = new TypeInfo(typeString.substring(entryStartPos, paramEndPos).trim());
-      info.setIsTypeVariable(true);
       generics.add(info);
+      addResolution(new Resolution("variability", "", null));
 
       mTypeArguments = generics;
 
@@ -483,6 +482,13 @@
               } else {
                   mClass = InfoBuilder.Caches.obtainClass(qualifiedClassName.toString());
               }
+          } else if ("variability".equals(resolution.getVariable())) {
+              StringBuilder qualifiedClassName = new StringBuilder();
+              for (TypeInfo arg : mTypeArguments) {
+                InfoBuilder.resolveQualifiedName(arg.simpleTypeName(), qualifiedClassName,
+                        resolution.getInfoBuilder());
+                arg.setIsTypeVariable(!("".equals(qualifiedClassName.toString())));
+              }
           }
       }