ctrlflow

package
v0.0.0-...-84f570a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 8, 2023 License: BSD-3-Clause Imports: 9 Imported by: 0

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",
	URL:        "https://pkg.go.dev/github.com/goplus/xtools/gop/analysis/passes/ctrlflow",
	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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL