The ctrlflow Analyzer builds a control-flow graph (see golang.org/x/tools/go/cfg) for each named and unnamed function in the package. It computes for each function whether it can never return, either because the function is an intrinsic that stops the thread (e.g. os.Exit), or because control never reaches a return statement, or because the function inevitably calls another function that never returns. For each such function it exports a noReturn fact. This change also: - adds 'inspect', another Analyzer that builds an optimized AST traversal table for use by nearly every other Analyzer. - changes analysistest.Run to return the analysis result to enable further testing. (This required changing it to analyze one package at a time, which is no less efficient, and is the typical case.) Change-Id: I877e2b2363a365a9976aa9c2719ad3fba4df2634 Reviewed-on: https://go-review.googlesource.com/c/139478 Reviewed-by: Michael Matloob <matloob@golang.org> |
||
---|---|---|
.. | ||
analysis | ||
ast | ||
buildutil | ||
callgraph | ||
cfg | ||
gccgoexportdata | ||
gcexportdata | ||
internal | ||
loader | ||
packages | ||
pointer | ||
ssa | ||
types | ||
vcs |