mirror of
https://github.com/golang/go
synced 2024-11-25 19:47:58 -07:00
go/ast: don't remove function bodies when filtering exports
This is a semantic but no API change. It is a cleaner implementation of pure filtering. Applications that need function bodies stripped can easily do this them- selves. R=rsc CC=golang-dev https://golang.org/cl/5206046
This commit is contained in:
parent
a64b2699c4
commit
3e46699958
@ -18,8 +18,7 @@ func exportFilter(name string) bool {
|
|||||||
// only exported nodes remain: all top-level identifiers which are not exported
|
// only exported nodes remain: all top-level identifiers which are not exported
|
||||||
// and their associated information (such as type, initial value, or function
|
// and their associated information (such as type, initial value, or function
|
||||||
// body) are removed. Non-exported fields and methods of exported types are
|
// body) are removed. Non-exported fields and methods of exported types are
|
||||||
// stripped, and the function bodies of exported functions are set to nil.
|
// stripped. The File.Comments list is not changed.
|
||||||
// The File.Comments list is not changed.
|
|
||||||
//
|
//
|
||||||
// FileExports returns true if there are exported declarationa;
|
// FileExports returns true if there are exported declarationa;
|
||||||
// it returns false otherwise.
|
// it returns false otherwise.
|
||||||
@ -206,9 +205,6 @@ func FilterDecl(decl Decl, f Filter) bool {
|
|||||||
d.Specs = filterSpecList(d.Specs, f)
|
d.Specs = filterSpecList(d.Specs, f)
|
||||||
return len(d.Specs) > 0
|
return len(d.Specs) > 0
|
||||||
case *FuncDecl:
|
case *FuncDecl:
|
||||||
if f == exportFilter {
|
|
||||||
d.Body = nil // strip body
|
|
||||||
}
|
|
||||||
return f(d.Name.Name)
|
return f(d.Name.Name)
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
Loading…
Reference in New Issue
Block a user