Documentation ¶
Index ¶
- Variables
- func CallExpr(node ast.Node) *ast.CallExpr
- func RootSelector(sel *ast.SelectorExpr) *ast.Ident
- func SelectorExpr(call *ast.CallExpr) *ast.SelectorExpr
- func StrExpr(e ast.Expr) string
- func SubjectForCall(node ast.Node, names []string) ast.Expr
- type Analyzer
- type FQN
- type LintError
- type Location
- type MutexScope
- type Scopes
- type Visitor
Constants ¶
This section is empty.
Variables ¶
View Source
var Mulint = &analysis.Analyzer{
Name: "mulint",
Doc: "reports reentrant mutex locks",
Run: run,
}
Functions ¶
func RootSelector ¶
func RootSelector(sel *ast.SelectorExpr) *ast.Ident
func SelectorExpr ¶
func SelectorExpr(call *ast.CallExpr) *ast.SelectorExpr
Types ¶
type Analyzer ¶
type Analyzer struct {
// contains filtered or unexported fields
}
func NewAnalyzer ¶
func (*Analyzer) ContainsLock ¶
func (a *Analyzer) ContainsLock(n ast.Node, seq *MutexScope)
type LintError ¶
type LintError struct {
// contains filtered or unexported fields
}
func NewLintError ¶
func (LintError) SecondLock ¶
type Location ¶
type Location struct {
// contains filtered or unexported fields
}
func NewLocation ¶
type MutexScope ¶
type MutexScope struct {
// contains filtered or unexported fields
}
func NewMutexScope ¶
func NewMutexScope(mutexSelector string, pos token.Pos) *MutexScope
func (*MutexScope) Add ¶
func (s *MutexScope) Add(node ast.Node)
func (*MutexScope) IsEqual ¶
func (s *MutexScope) IsEqual(right *MutexScope) bool
func (*MutexScope) Nodes ¶
func (s *MutexScope) Nodes() []ast.Node
func (*MutexScope) Pos ¶
func (s *MutexScope) Pos() token.Pos
func (*MutexScope) Selector ¶
func (s *MutexScope) Selector() string
type Scopes ¶
type Scopes struct {
// contains filtered or unexported fields
}
func (*Scopes) HasAnyScope ¶
func (*Scopes) Scopes ¶
func (s *Scopes) Scopes() []*MutexScope
Click to show internal directories.
Click to hide internal directories.