From 16616f8d12fcd9dbbd926c83e74db6cbc21a1ff6 Mon Sep 17 00:00:00 2001 From: Daniel Wagner-Hall Date: Fri, 10 Feb 2023 11:21:45 +0000 Subject: [PATCH] Fix `go mod download` output expectation for errors (#1442) As per https://go.dev/ref/mod#go-mod-download `type Module struct` has a `string` field `Error` not a wrapper struct one (unlike `go list -m` which has a wrapping `*ModuleError`). --- language/go/update_import_test.go | 4 +--- language/go/utils.go | 10 +++------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/language/go/update_import_test.go b/language/go/update_import_test.go index 8d65c8a7f..db7b94272 100644 --- a/language/go/update_import_test.go +++ b/language/go/update_import_test.go @@ -253,9 +253,7 @@ definitely.doesnotexist/ever v0.1.0/go.mod h1:HI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqw return []byte(`{ "Path": "definitely.doesnotexist/ever", "Version": "0.1.0", -"Error": { - "Err": "Did not exist" -} +"Error": "Did not exist" }`), fmt.Errorf("failed to download") }, }, { diff --git a/language/go/utils.go b/language/go/utils.go index 7b63a44b6..7e5960071 100644 --- a/language/go/utils.go +++ b/language/go/utils.go @@ -62,10 +62,6 @@ type moduleError struct { Err string } -type downloadError struct { - Err string -} - // moduleFromDownload is an abstraction to preserve the output of `go mod download`. // The output schema is documented at https://go.dev/ref/mod#go-mod-download type moduleFromDownload struct { @@ -74,7 +70,7 @@ type moduleFromDownload struct { Replace *struct { Path, Version string } - Error *downloadError + Error string } // extractModules lists all modules except for the main module, @@ -136,8 +132,8 @@ func fillMissingSums(pathToModule map[string]*moduleFromList) (map[string]*modul err = fmt.Errorf("%w\nError parsing module for more error information: %v", err, decodeErr) break } - if dl.Error != nil { - err = fmt.Errorf("%w\nError downloading %v: %v", err, dl.Path, dl.Error.Err) + if dl.Error != "" { + err = fmt.Errorf("%w\nError downloading %v: %v", err, dl.Path, dl.Error) } } err = fmt.Errorf("error from go mod download: %w", err)