mirror of
https://github.com/golang/go.git
synced 2025-05-05 15:43:04 +00:00
cmd/callgraph: fix "import path of the enclosing package" example in usage
Caller is *ssa.Function. Its Pkg field is *ssa.Package. But ssa.Package struct doesn't contain either field or method named Object. So one gets the following error: $ callgraph -format '{{.Caller.Pkg.Object.Path}} -> {{.Callee.Pkg.Object.Path}}' \ $(go env GOROOT)/src/net/http/triv.go | sort | uniq callgraph: template: -format:1:9: executing "-format" at <.Caller.Pkg.Object.P...>: can't evaluate field Object in type *ssa.Package ssa.Package contains Pkg field: Pkg *types.Package // the corresponding go/types.Package types.Package contains Path() method that returns the package path. That appears to be the right way to get the "import path of the enclosing package" with the current x/tools/go/ssa API. Fixes golang/go#20459. Change-Id: I3cb7b61b767148f5c771d57f8f5e7e6ab20aea87 Reviewed-on: https://go-review.googlesource.com/43812 Reviewed-by: Avelino <t@avelino.xxx> Reviewed-by: Alan Donovan <adonovan@google.com>
This commit is contained in:
parent
f03b3350b7
commit
5831d16d18
@ -114,7 +114,7 @@ Flags:
|
|||||||
|
|
||||||
Caller and Callee are *ssa.Function values, which print as
|
Caller and Callee are *ssa.Function values, which print as
|
||||||
"(*sync/atomic.Mutex).Lock", but other attributes may be
|
"(*sync/atomic.Mutex).Lock", but other attributes may be
|
||||||
derived from them, e.g. Caller.Pkg.Object.Path yields the
|
derived from them, e.g. Caller.Pkg.Pkg.Path yields the
|
||||||
import path of the enclosing package. Consult the go/ssa
|
import path of the enclosing package. Consult the go/ssa
|
||||||
API documentation for details.
|
API documentation for details.
|
||||||
|
|
||||||
@ -128,7 +128,7 @@ Examples:
|
|||||||
|
|
||||||
Same, but show only the packages of each function:
|
Same, but show only the packages of each function:
|
||||||
|
|
||||||
callgraph -format '{{.Caller.Pkg.Object.Path}} -> {{.Callee.Pkg.Object.Path}}' \
|
callgraph -format '{{.Caller.Pkg.Pkg.Path}} -> {{.Callee.Pkg.Pkg.Path}}' \
|
||||||
$GOROOT/src/net/http/triv.go | sort | uniq
|
$GOROOT/src/net/http/triv.go | sort | uniq
|
||||||
|
|
||||||
Show functions that make dynamic calls into the 'fmt' test package,
|
Show functions that make dynamic calls into the 'fmt' test package,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user