...

Package ifaceassert

import "golang.org/x/tools/go/analysis/passes/ifaceassert"
Overview
Index
Subdirectories

Overview ▾

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

Copyright 2022 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.

Constants

const Doc = `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:      Doc,
    Requires: []*analysis.Analyzer{inspect.Analyzer},
    Run:      run,
}

Subdirectories

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