diff --git a/go/packages/golist.go b/go/packages/golist.go
index e84f19d..5823003 100644
--- a/go/packages/golist.go
+++ b/go/packages/golist.go
@@ -671,6 +671,9 @@
 		// Temporary work-around for golang/go#39986. Parse filenames out of
 		// error messages. This happens if there are unrecoverable syntax
 		// errors in the source, so we can't match on a specific error message.
+		//
+		// TODO(rfindley): remove this heuristic, in favor of considering
+		// InvalidGoFiles from the list driver.
 		if err := p.Error; err != nil && state.shouldAddFilenameFromError(p) {
 			addFilenameFromPos := func(pos string) bool {
 				split := strings.Split(pos, ":")
diff --git a/gopls/internal/lsp/cache/load.go b/gopls/internal/lsp/cache/load.go
index da985a8..eb302b7 100644
--- a/gopls/internal/lsp/cache/load.go
+++ b/gopls/internal/lsp/cache/load.go
@@ -528,9 +528,21 @@
 			continue
 		}
 
+		buildMetadata(updates, imported, loadDir, false) // only top level packages can be standalone
+
+		// Don't record edges to packages with no name, as they cause trouble for
+		// the importer (golang/go#60952).
+		//
+		// However, we do want to insert these packages into the update map
+		// (buildMetadata above), so that we get type-checking diagnostics for the
+		// invalid packages.
+		if imported.Name == "" {
+			depsByImpPath[importPath] = "" // missing
+			continue
+		}
+
 		depsByImpPath[importPath] = PackageID(imported.ID)
 		depsByPkgPath[PackagePath(imported.PkgPath)] = PackageID(imported.ID)
-		buildMetadata(updates, imported, loadDir, false) // only top level packages can be standalone
 	}
 	m.DepsByImpPath = depsByImpPath
 	m.DepsByPkgPath = depsByPkgPath
