// Copyright 2023 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // 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. package ifaceassert