From d9e2631b53395fd3128f62cc621f2b1ed206a109 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Wed, 4 Aug 2010 18:02:43 -0700 Subject: [PATCH] go/parser.ParseFiles: don't override error (to nil) if there is one Also: Return first instead of last error as that seems more useful. R=r CC=golang-dev https://golang.org/cl/1897050 --- src/pkg/go/parser/interface.go | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/pkg/go/parser/interface.go b/src/pkg/go/parser/interface.go index e1ddb37c30..6d11a26669 100644 --- a/src/pkg/go/parser/interface.go +++ b/src/pkg/go/parser/interface.go @@ -147,16 +147,13 @@ func ParseFile(filename string, src interface{}, scope *ast.Scope, mode uint) (* // bits are passed to ParseFile unchanged. // // Files with parse errors are ignored. In this case the map of packages may -// be incomplete (missing packages and/or incomplete packages) and the last +// be incomplete (missing packages and/or incomplete packages) and the first // error encountered is returned. // -func ParseFiles(filenames []string, scope *ast.Scope, mode uint) (map[string]*ast.Package, os.Error) { - pkgs := make(map[string]*ast.Package) - var err os.Error +func ParseFiles(filenames []string, scope *ast.Scope, mode uint) (pkgs map[string]*ast.Package, first os.Error) { + pkgs = make(map[string]*ast.Package) for _, filename := range filenames { - var src *ast.File - src, err = ParseFile(filename, nil, scope, mode) - if err == nil { + if src, err := ParseFile(filename, nil, scope, mode); err == nil { name := src.Name.Name() pkg, found := pkgs[name] if !found { @@ -164,10 +161,11 @@ func ParseFiles(filenames []string, scope *ast.Scope, mode uint) (map[string]*as pkgs[name] = pkg } pkg.Files[filename] = src + } else if first == nil { + first = err } } - - return pkgs, err + return } -- 2.50.0