ifaceassert

package
v0.0.2-gopresent Latest Latest
Warning

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

Go to latest
Published: Jul 16, 2024 License: BSD-3-Clause Imports: 8 Imported by: 0

Documentation

Overview

Package ifaceassert defines an Analyzer that flags impossible interface-interface type assertions.

Analyzer ifaceassert

ifaceassert: detect impossible interface-to-interface type assertions

This checker flags type assertions v.(T) and corresponding type-switch cases in which the static type V of v is an interface that cannot possibly implement the target interface T. This occurs when V and T contain methods with the same name but different signatures. Example:

var v interface {
	Read()
}
_ = v.(io.Reader)

The Read method in v has a different signature than the Read method in io.Reader, so this assertion cannot succeed.

Index

Constants

This section is empty.

Variables

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

Functions

This section is empty.

Types

This section is empty.

Directories

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

Jump to

Keyboard shortcuts

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