internal/typeparams: fix undefined *types.Named.TArgs method

Current tip Go runtime (7eaabae84d8b) haven't (actually removed)
implements *types.Named.TArgs() method.
Calculate and make targs using named.NumTArgs().

Change-Id: Ib6a61cf2f8da644f533891f9bbb30179f8a7df5c
Reviewed-on: https://go-review.googlesource.com/c/tools/+/342229
Reviewed-by: Robert Findley <rfindley@google.com>
Trust: Robert Findley <rfindley@google.com>
Trust: Rebecca Stambler <rstambler@golang.org>
Run-TryBot: Robert Findley <rfindley@google.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
diff --git a/internal/typeparams/typeparams.go b/internal/typeparams/typeparams.go
index be6b052..2e94210 100644
--- a/internal/typeparams/typeparams.go
+++ b/internal/typeparams/typeparams.go
@@ -91,7 +91,17 @@
 
 // NamedTArgs extracts the (possibly empty) type argument list from named.
 func NamedTArgs(named *types.Named) []types.Type {
-	return named.TArgs()
+	ntargs := named.NumTArgs()
+	if ntargs == 0 {
+		return nil
+	}
+
+	targs := make([]types.Type, ntargs)
+	for i := 0; i < ntargs; i++ {
+		targs[i] = named.TArg(i)
+	}
+
+	return targs
 }
 
 // InitInferred initializes info to record inferred type information.