Documentation

Overview

    Package ctrlflow is an analysis that provides a syntactic control-flow graph (CFG) for the body of a function. It records whether a function cannot return. By itself, it does not report any diagnostics.

    Index

    Constants

    This section is empty.

    Variables

    View Source
    var Analyzer = &analysis.Analyzer{
    	Name:       "ctrlflow",
    	Doc:        "build a control-flow graph",
    	Run:        run,
    	ResultType: reflect.TypeOf(new(CFGs)),
    	FactTypes:  []analysis.Fact{new(noReturn)},
    	Requires:   []*analysis.Analyzer{inspect.Analyzer},
    }

    Functions

    This section is empty.

    Types

    type CFGs

    type CFGs struct {
    	// contains filtered or unexported fields
    }

      A CFGs holds the control-flow graphs for all the functions of the current package.

      func (*CFGs) FuncDecl

      func (c *CFGs) FuncDecl(decl *ast.FuncDecl) *cfg.CFG

        FuncDecl returns the control-flow graph for a named function. It returns nil if decl.Body==nil.

        func (*CFGs) FuncLit

        func (c *CFGs) FuncLit(lit *ast.FuncLit) *cfg.CFG

          FuncLit returns the control-flow graph for a literal function.

          Source Files