shadow

package
v0.20.0 Latest Latest
Warning

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

Go to latest
Published: Apr 4, 2024 License: BSD-3-Clause Imports: 8 Imported by: 182

Documentation

Overview

Package shadow defines an Analyzer that checks for shadowed variables.

Analyzer shadow

shadow: 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
}

Index

Constants

This section is empty.

Variables

View Source
var Analyzer = &analysis.Analyzer{
	Name:     "shadow",
	Doc:      analysisutil.MustExtractDoc(doc, "shadow"),
	URL:      "https://pkg.go.dev/golang.org/x/tools/go/analysis/passes/shadow",
	Requires: []*analysis.Analyzer{inspect.Analyzer},
	Run:      run,
}

Functions

This section is empty.

Types

This section is empty.

Directories

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

Jump to

Keyboard shortcuts

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