fix(java_indexer): emit and test type parameter MarkedSources (#3832)

diff --git a/kythe/java/com/google/devtools/kythe/analyzers/java/KytheTreeScanner.java b/kythe/java/com/google/devtools/kythe/analyzers/java/KytheTreeScanner.java
index ad0cf67..4d77645 100644
--- a/kythe/java/com/google/devtools/kythe/analyzers/java/KytheTreeScanner.java
+++ b/kythe/java/com/google/devtools/kythe/analyzers/java/KytheTreeScanner.java
@@ -964,7 +964,16 @@
     List<VName> typeParams = new ArrayList<>();
     for (JCTypeParameter tParam : params) {
       TreeContext ctx = ownerContext.down(tParam);
-      VName node = getNode(tParam.type.asElement());
+      Symbol sym = tParam.type.asElement();
+      VName node =
+          signatureGenerator
+              .getSignature(sym)
+              .map(sig -> entrySets.getNode(signatureGenerator, sym, sig, null, null))
+              .orElse(null);
+      if (node == null) {
+        logger.atWarning().log("Could not get type parameter VName: %s", tParam);
+        continue;
+      }
       emitDefinesBindingAnchorEdge(ctx, tParam.name, tParam.getStartPosition(), node);
       visitAnnotations(node, tParam.getAnnotations(), ctx);
       typeParams.add(node);
diff --git a/kythe/javatests/com/google/devtools/kythe/analyzers/java/testdata/pkg/MarkedSource.java b/kythe/javatests/com/google/devtools/kythe/analyzers/java/testdata/pkg/MarkedSource.java
index d3c4a9a..a3da0a2 100644
--- a/kythe/javatests/com/google/devtools/kythe/analyzers/java/testdata/pkg/MarkedSource.java
+++ b/kythe/javatests/com/google/devtools/kythe/analyzers/java/testdata/pkg/MarkedSource.java
@@ -396,6 +396,17 @@
     return arry.clone();
   }
 
+  //- @T defines/binding TVar
+  //- TVar.node/kind absvar
+  //- TVar code TVarCode
+  //- TVarCode.kind "BOX"
+  //- TVarCode child.0 TVarContext
+  //- TVarContext.kind "CONTEXT"
+  //- TVarCode child.1 TVarIdent
+  //- TVarIdent.kind "IDENTIFIER"
+  //- TVarIdent.pre_text "<T>"
+  static class Generic<T> {}
+
   //- Void code VoidId
   //- VoidId.kind "IDENTIFIER"
   //- VoidId.pre_text void