mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
go/parser: ignore subdirectories in ParseDir
Issue and PR on GoReleaser:
- https://github.com/goreleaser/goreleaser/issues/1897
- https://github.com/goreleaser/goreleaser/pull/1899
Fixes #42951.
Change-Id: Ia0d6018e0bad59cd60cd600188c368c431032a4b
GitHub-Last-Rev: be59d85fe2
GitHub-Pull-Request: golang/go#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>
This commit is contained in:
parent
2d0258d495
commit
48838c35dc
3 changed files with 10 additions and 1 deletions
|
|
@ -140,7 +140,7 @@ func ParseDir(fset *token.FileSet, path string, filter func(fs.FileInfo) bool, m
|
||||||
|
|
||||||
pkgs = make(map[string]*ast.Package)
|
pkgs = make(map[string]*ast.Package)
|
||||||
for _, d := range list {
|
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())
|
filename := filepath.Join(path, d.Name())
|
||||||
if src, err := ParseFile(fset, filename, nil, mode); err == nil {
|
if src, err := ParseFile(fset, filename, nil, mode); err == nil {
|
||||||
name := src.Name.Name
|
name := src.Name.Name
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
func TestParseExpr(t *testing.T) {
|
||||||
// just kicking the tires:
|
// just kicking the tires:
|
||||||
// a valid arithmetic expression
|
// a valid arithmetic expression
|
||||||
|
|
|
||||||
1
src/go/parser/testdata/issue42951/not_a_file.go/invalid.go
vendored
Normal file
1
src/go/parser/testdata/issue42951/not_a_file.go/invalid.go
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
This file should not be parsed by ParseDir.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue