package ifaceassert
import "golang.org/x/tools/go/analysis/passes/ifaceassert"
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 ¶
Variables ¶
var Analyzer = &analysis.Analyzer{ Name: "ifaceassert", Doc: analysisutil.MustExtractDoc(doc, "ifaceassert"), URL: "https://pkg.go.dev/golang.org/x/tools/go/analysis/passes/ifaceassert", Requires: []*analysis.Analyzer{inspect.Analyzer}, Run: run, }
Source Files ¶
doc.go ifaceassert.go
Directories ¶
Path | Synopsis |
---|---|
go/analysis/passes/ifaceassert/cmd | |
go/analysis/passes/ifaceassert/cmd/ifaceassert | The ifaceassert command runs the ifaceassert analyzer. |
- Version
- v0.30.0 (latest)
- Published
- Feb 10, 2025
- Platform
- linux/amd64
- Imports
- 8 packages
- Last checked
- 3 hours ago –
Tools for package owners.