internal/lsp: fix panic in computing file version

Fixes golang/go#32791

Change-Id: I04fc3de5ed94137424a32f3e7200ba72d3913329
Reviewed-on: https://go-review.googlesource.com/c/tools/+/183984
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
Reviewed-by: Michael Matloob <matloob@golang.org>
diff --git a/internal/lsp/cache/external.go b/internal/lsp/cache/external.go
index 043d20a..ddb7367 100644
--- a/internal/lsp/cache/external.go
+++ b/internal/lsp/cache/external.go
@@ -23,12 +23,10 @@
 }
 
 func (fs *nativeFileSystem) GetFile(uri span.URI) source.FileHandle {
-	var version string
-	fi, err := os.Stat(uri.Filename())
-	if err != nil {
-		version = "DOES NOT EXIST"
+	version := "DOES NOT EXIST"
+	if fi, err := os.Stat(uri.Filename()); err == nil {
+		version = fi.ModTime().String()
 	}
-	version = fi.ModTime().String()
 	return &nativeFileHandle{
 		fs: fs,
 		identity: source.FileIdentity{