Revert "go/packages: avoid unnecessary dependency on StdSizes"

This reverts commit 2842ed849601a7944c006e819a9b5d264a3537e1.

Reason for revert: The dependency is not unnecessary, and any
changes here must be synchronized with Bazel's gopackagesdriver.

Change-Id: I1291198d10ed66ae8f4bd1238e981d9d3b9f86c2
Reviewed-on: https://go-review.googlesource.com/c/tools/+/511335
Auto-Submit: Russ Cox <rsc@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Matloob <matloob@golang.org>
gopls-CI: kokoro <noreply+kokoro@google.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
diff --git a/go/packages/golist.go b/go/packages/golist.go
index 84ddd52..5823003 100644
--- a/go/packages/golist.go
+++ b/go/packages/golist.go
@@ -9,6 +9,7 @@
 	"context"
 	"encoding/json"
 	"fmt"
+	"go/types"
 	"io/ioutil"
 	"log"
 	"os"
@@ -152,7 +153,10 @@
 	if cfg.Mode&NeedTypesSizes != 0 || cfg.Mode&NeedTypes != 0 {
 		sizeswg.Add(1)
 		go func() {
-			response.dr.Sizes, sizeserr = packagesdriver.GetSizesGolist(ctx, state.cfgInvocation(), cfg.gocmdRunner)
+			var sizes types.Sizes
+			sizes, sizeserr = packagesdriver.GetSizesGolist(ctx, state.cfgInvocation(), cfg.gocmdRunner)
+			// types.SizesFor always returns nil or a *types.StdSizes.
+			response.dr.Sizes, _ = sizes.(*types.StdSizes)
 			sizeswg.Done()
 		}()
 	}
diff --git a/go/packages/packages.go b/go/packages/packages.go
index 6434022..da1a27e 100644
--- a/go/packages/packages.go
+++ b/go/packages/packages.go
@@ -221,7 +221,7 @@
 	NotHandled bool
 
 	// Sizes, if not nil, is the types.Sizes to use when type checking.
-	Sizes types.Sizes
+	Sizes *types.StdSizes
 
 	// Roots is the set of package IDs that make up the root packages.
 	// We have to encode this separately because when we encode a single package