...

Package shadow

import "golang.org/x/tools/go/analysis/passes/shadow"
Overview
Index
Subdirectories

Overview ▾

Package shadow defines an Analyzer that checks for shadowed variables.

Index ▾

Package files

shadow.go

Constants

const Doc = `check for possible unintended shadowing of variables

This analyzer check for shadowed variables.
A shadowed variable is a variable declared in an inner scope
with the same name and type as a variable in an outer scope,
and where the outer variable is mentioned after the inner one
is declared.

(This definition can be refined; the module generates too many
false positives and is not yet enabled by default.)

For example:

    func BadRead(f *os.File, buf []byte) error {
        var err error
        for {
            n, err := f.Read(buf) // shadows the function variable 'err'
            if err != nil {
                break // causes return of wrong value
            }
            foo(buf)
        }
        return err
    }
`

Variables

var Analyzer = &analysis.Analyzer{
    Name:     "shadow",
    Doc:      Doc,
    Requires: []*analysis.Analyzer{inspect.Analyzer},
    Run:      run,
}

Subdirectories

Name Synopsis
..
cmd
shadow The shadow command runs the shadow analyzer.