blob: 9ed88698ddc060ec39fa7a85be5341ddf1b49a8e [file] [log] [blame]
// 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 stdmethods defines an Analyzer that checks for misspellings
// in the signatures of methods similar to well-known interfaces.
//
// # Analyzer stdmethods
//
// stdmethods: check signature of methods of well-known interfaces
//
// Sometimes a type may be intended to satisfy an interface but may fail to
// do so because of a mistake in its method signature.
// For example, the result of this WriteTo method should be (int64, error),
// not error, to satisfy io.WriterTo:
//
// type myWriterTo struct{...}
// func (myWriterTo) WriteTo(w io.Writer) error { ... }
//
// This check ensures that each method whose name matches one of several
// well-known interface methods from the standard library has the correct
// signature for that interface.
//
// Checked method names include:
//
// Format GobEncode GobDecode MarshalJSON MarshalXML
// Peek ReadByte ReadFrom ReadRune Scan Seek
// UnmarshalJSON UnreadByte UnreadRune WriteByte
// WriteTo
package stdmethods