From 1dfd70e0ab7bd5d5baa65e6675a6380bc9b33309 Mon Sep 17 00:00:00 2001 From: Rebecca Stambler Date: Fri, 4 Dec 2020 16:21:12 -0500 Subject: [PATCH] internal/imports: prevent panic in imports GOMODCACHE logic Fixes golang/go#42949 Change-Id: Icabfce85550cb6e69383ba50c2c675a5c730bec5 Reviewed-on: https://go-review.googlesource.com/c/tools/+/275451 Trust: Rebecca Stambler Run-TryBot: Rebecca Stambler gopls-CI: kokoro TryBot-Result: Go Bot Reviewed-by: Heschi Kreinick --- internal/imports/mod.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/imports/mod.go b/internal/imports/mod.go index 73f7a49587..ce3269a430 100644 --- a/internal/imports/mod.go +++ b/internal/imports/mod.go @@ -88,7 +88,11 @@ func (r *ModuleResolver) init() error { if gmc := r.env.Env["GOMODCACHE"]; gmc != "" { r.moduleCacheDir = gmc } else { - r.moduleCacheDir = filepath.Join(filepath.SplitList(goenv["GOPATH"])[0], "/pkg/mod") + gopaths := filepath.SplitList(goenv["GOPATH"]) + if len(gopaths) == 0 { + return fmt.Errorf("empty GOPATH") + } + r.moduleCacheDir = filepath.Join(gopaths[0], "/pkg/mod") } sort.Slice(r.modsByModPath, func(i, j int) bool {