Inspectopedia Help

Non-standard signature for well-known function names

Reports methods with certain names in the following cases:

  • the method's name matches the name of several well-known interface methods from the standard library

  • the signature does not match the signature of the corresponding interface method

Such methods might indicate that the receiver type is intended to satisfy an interface from the standard library, but fails to do so because of the mistake in the method's signature.

Example:

type MyReader []byte func (r MyReader) ReadByte(data []byte) (byte, error) { }

The usage is suspicious because it looks like an attempt to implement io.ByteReader but the signature is wrong. More correct version will be as follows:

type MyReader []byte func (r MyReader) ReadByte() (byte, error) { }

Inspection Details

Available in:

GoLand 2023.3

Plugin:

Go, 233.SNAPSHOT

Last modified: 13 July 2023