go/packages: make loadFromExportData ignore go.shape

From Reilly Watson <reillywatson@gmail.com> (previous CLA)

Fixes golang/go#51629

Change-Id: I5891aa568d66d9471488a957e45a2fa22a58e0a4
Reviewed-on: https://go-review.googlesource.com/c/tools/+/400034
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
diff --git a/go/packages/packages.go b/go/packages/packages.go
index f9bc35d..5e09e23 100644
--- a/go/packages/packages.go
+++ b/go/packages/packages.go
@@ -1234,6 +1234,11 @@
 	if err != nil {
 		return nil, fmt.Errorf("reading %s: %v", lpkg.ExportFile, err)
 	}
+	if _, ok := view["go.shape"]; ok {
+		// Account for the pseudopackage "go.shape" that gets
+		// created by generic code.
+		viewLen++
+	}
 	if viewLen != len(view) {
 		log.Panicf("golang.org/x/tools/go/packages: unexpected new packages during load of %s", lpkg.PkgPath)
 	}