go/packages: change the driverResponse.Sizes to have type StdSizes

This will allow Sizes to be marshalled and unmarshalled. All the Sizes
we care about ane StdSizes anyways.

Change-Id: I79d1dcaebba32f7730de4375945e372eeefa78fe
Reviewed-on: https://go-review.googlesource.com/c/147978
Run-TryBot: Michael Matloob <matloob@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
diff --git a/go/packages/golist.go b/go/packages/golist.go
index ff42de4..dfaeed8 100644
--- a/go/packages/golist.go
+++ b/go/packages/golist.go
@@ -113,7 +113,8 @@
 	if sizeserr != nil {
 		return nil, sizeserr
 	}
-	response.Sizes = sizes
+	// types.SizesFor always returns nil or a *types.StdSizes
+	response.Sizes, _ = sizes.(*types.StdSizes)
 
 	if len(containFiles) == 0 && len(packagesNamed) == 0 {
 		return response, nil
diff --git a/go/packages/packages.go b/go/packages/packages.go
index 7d713fc..d359a33 100644
--- a/go/packages/packages.go
+++ b/go/packages/packages.go
@@ -138,7 +138,7 @@
 // driverResponse contains the results for a driver query.
 type driverResponse struct {
 	// 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