internal/lsp: add additional logging for go/packages failures

Change-Id: I8c6dae4309df1746cd8b74d280f1f360f42cc77b
Reviewed-on: https://go-review.googlesource.com/c/161218
Reviewed-by: Ian Cottrell <iancottrell@google.com>
diff --git a/internal/lsp/cache/view.go b/internal/lsp/cache/view.go
index 8c05f45..a9f0ab1 100644
--- a/internal/lsp/cache/view.go
+++ b/internal/lsp/cache/view.go
@@ -8,6 +8,7 @@
 	"context"
 	"fmt"
 	"go/token"
+	"log"
 	"sync"
 
 	"golang.org/x/tools/go/packages"
@@ -112,7 +113,15 @@
 		// Add every file in this package to our cache.
 		for _, fAST := range pkg.Syntax {
 			// TODO: If a file is in multiple packages, which package do we store?
+			if !fAST.Pos().IsValid() {
+				log.Printf("invalid position for AST %v", fAST.Name)
+				continue
+			}
 			fToken := v.Config.Fset.File(fAST.Pos())
+			if fToken == nil {
+				log.Printf("no token.File for %v", fAST.Name)
+				continue
+			}
 			fURI := source.ToURI(fToken.Name())
 			f := v.getFile(fURI)
 			f.token = fToken