Skip to content

Commit

Permalink
go/parser: ignore subdirectories in ParseDir
Browse files Browse the repository at this point in the history
Issue and PR on GoReleaser:
- goreleaser/goreleaser#1897
- goreleaser/goreleaser#1899

Fixes #42951.

Change-Id: Ia0d6018e0bad59cd60cd600188c368c431032a4b
GitHub-Last-Rev: be59d85
GitHub-Pull-Request: #42581
Reviewed-on: https://go-review.googlesource.com/c/go/+/269897
Trust: Robert Griesemer <gri@golang.org>
Trust: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Robert Griesemer <gri@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
  • Loading branch information
caarlos0 authored and griesemer committed Dec 2, 2020
1 parent 2d0258d commit 48838c3
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/go/parser/interface.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ func ParseDir(fset *token.FileSet, path string, filter func(fs.FileInfo) bool, m

pkgs = make(map[string]*ast.Package)
for _, d := range list {
if strings.HasSuffix(d.Name(), ".go") && (filter == nil || filter(d)) {
if !d.IsDir() && strings.HasSuffix(d.Name(), ".go") && (filter == nil || filter(d)) {
filename := filepath.Join(path, d.Name())
if src, err := ParseFile(fset, filename, nil, mode); err == nil {
name := src.Name.Name
Expand Down
8 changes: 8 additions & 0 deletions src/go/parser/parser_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,14 @@ func TestParseDir(t *testing.T) {
}
}

func TestIssue42951(t *testing.T) {
path := "./testdata/issue42951"
_, err := ParseDir(token.NewFileSet(), path, nil, 0)
if err != nil {
t.Errorf("ParseDir(%s): %v", path, err)
}
}

func TestParseExpr(t *testing.T) {
// just kicking the tires:
// a valid arithmetic expression
Expand Down
1 change: 1 addition & 0 deletions src/go/parser/testdata/issue42951/not_a_file.go/invalid.go
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This file should not be parsed by ParseDir.

0 comments on commit 48838c3

Please sign in to comment.