...
Package ifaceassert
import "cmd/vendor/golang.org/x/tools/go/analysis/passes/ifaceassert"
- Overview
- Index
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.
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,
}