From 955cb1a8ed72771b019c5a3da5e246db7e857e3c Mon Sep 17 00:00:00 2001 From: Miguel Victoria Date: Wed, 29 May 2024 19:13:35 +0200 Subject: [PATCH] fix comments on review --- gnovm/cmd/gno/lint.go | 50 ++++++++++++++++++++------------------ gnovm/cmd/gno/test.go | 8 +++--- gnovm/pkg/gnolang/nodes.go | 9 ++++--- 3 files changed, 35 insertions(+), 32 deletions(-) diff --git a/gnovm/cmd/gno/lint.go b/gnovm/cmd/gno/lint.go index 90717edad459..781c70ae2967 100644 --- a/gnovm/cmd/gno/lint.go +++ b/gnovm/cmd/gno/lint.go @@ -170,36 +170,38 @@ func catchRuntimeError(pkgPath string, stderr io.WriteCloser, action func()) (ha return } hasError = true - printRuntimeError(r, pkgPath, stderr) + switch verr := r.(type) { + case *gno.PreprocessError: + err := verr.Unwrap() + fmt.Fprint(stderr, issueFromError(pkgPath, err).String()+"\n") + case scanner.ErrorList: + for _, err := range verr { + fmt.Fprint(stderr, issueFromError(pkgPath, err).String()+"\n") + } + case error: + fmt.Fprint(stderr, issueFromError(pkgPath, verr).String()+"\n") + case []error: + for _, err := range verr { + errList, ok := err.(scanner.ErrorList) + if ok { + for _, errorInList := range errList { + fmt.Fprint(stderr, issueFromError(pkgPath, errorInList).String()+"\n") + } + } else { + fmt.Fprint(stderr, issueFromError(pkgPath, err).String()+"\n") + } + } + case string: + fmt.Fprint(stderr, issueFromError(pkgPath, errors.New(verr)).String()+"\n") + default: + panic(r) + } }() action() return } -func printRuntimeError(r interface{}, pkgPath string, stderr io.WriteCloser) { - switch verr := r.(type) { - case *gno.PreprocessError: - err := verr.Unwrap() - fmt.Fprint(stderr, issueFromError(pkgPath, err).String()+"\n") - case scanner.ErrorList: - for _, err := range verr { - fmt.Fprint(stderr, issueFromError(pkgPath, err).String()+"\n") - } - case error: - fmt.Fprint(stderr, issueFromError(pkgPath, verr).String()+"\n") - case []error: - for _, err := range verr { - // recursive call to handle specifically each error type ex: scanner.ErrorList - printRuntimeError(err, pkgPath, stderr) - } - case string: - fmt.Fprint(stderr, issueFromError(pkgPath, errors.New(verr)).String()+"\n") - default: - panic(r) - } -} - type lintCode int const ( diff --git a/gnovm/cmd/gno/test.go b/gnovm/cmd/gno/test.go index 2da5bf27b1d1..9ce306552679 100644 --- a/gnovm/cmd/gno/test.go +++ b/gnovm/cmd/gno/test.go @@ -578,7 +578,7 @@ func loadTestFuncs(pkgName string, t *testFuncs, tfiles *gno.FileSet) *testFuncs func parseMemPackageTests(memPkg *std.MemPackage) (tset, itset *gno.FileSet) { tset = &gno.FileSet{} itset = &gno.FileSet{} - errors := []error{} + var errs error for _, mfile := range memPkg.Files { if !strings.HasSuffix(mfile.Name, ".gno") { continue // skip this file. @@ -588,7 +588,7 @@ func parseMemPackageTests(memPkg *std.MemPackage) (tset, itset *gno.FileSet) { } n, err := gno.ParseFile(mfile.Name, mfile.Body) if err != nil { - errors = append(errors, err) + errs = multierr.Append(errs, err) continue } if n == nil { @@ -609,8 +609,8 @@ func parseMemPackageTests(memPkg *std.MemPackage) (tset, itset *gno.FileSet) { memPkg.Name, memPkg.Name, n.PkgName, mfile)) } } - if len(errors) > 0 { - panic(errors) + if errorList := multierr.Errors(errs); len(errorList) > 0 { + panic(errorList) } return tset, itset } diff --git a/gnovm/pkg/gnolang/nodes.go b/gnovm/pkg/gnolang/nodes.go index fc80a1251fd1..326166b7ee4e 100644 --- a/gnovm/pkg/gnolang/nodes.go +++ b/gnovm/pkg/gnolang/nodes.go @@ -13,6 +13,7 @@ import ( "github.com/gnolang/gno/tm2/pkg/errors" "github.com/gnolang/gno/tm2/pkg/std" + "go.uber.org/multierr" ) // ---------------------------------------- @@ -1172,7 +1173,7 @@ func ReadMemPackageFromList(list []string, pkgPath string) *std.MemPackage { // or [ParseFile] returns an error, ParseMemPackage panics. func ParseMemPackage(memPkg *std.MemPackage) (fset *FileSet) { fset = &FileSet{} - errors := []error{} + var errs error for _, mfile := range memPkg.Files { if !strings.HasSuffix(mfile.Name, ".gno") || endsWith(mfile.Name, []string{"_test.gno", "_filetest.gno"}) { @@ -1180,7 +1181,7 @@ func ParseMemPackage(memPkg *std.MemPackage) (fset *FileSet) { } n, err := ParseFile(mfile.Name, mfile.Body) if err != nil { - errors = append(errors, err) + errs = multierr.Append(errs, err) continue } if memPkg.Name != string(n.PkgName) { @@ -1191,8 +1192,8 @@ func ParseMemPackage(memPkg *std.MemPackage) (fset *FileSet) { // add package file. fset.AddFiles(n) } - if len(errors) > 0 { - panic(errors) + if errorList := multierr.Errors(errs); len(errorList) > 0 { + panic(errorList) } return fset }