gotools/internal/apidiff/apidiff.go

// Changes reports on the differences between the APIs of the old and new packages.
// It classifies each difference as either compatible or incompatible (breaking.) For
// a detailed discussion of what constitutes an incompatible change, see the package
// documentation.
func Changes(old, new *types.Package) Report {}

type differ

func newDiffer(old, new *types.Package) *differ {}

func (d *differ) incompatible(obj types.Object, part, format string, args ...interface{}

func (d *differ) compatible(obj types.Object, part, format string, args ...interface{}

func addMessage(ms messageSet, obj types.Object, part, format string, args []interface{}

func (d *differ) checkPackage() {}

func (d *differ) checkObjects(old, new types.Object) {}

// Compare two constants.
func (d *differ) constChanges(old, new *types.Const) {}

func objectKindString(obj types.Object) string {}

func (d *differ) checkCorrespondence(obj types.Object, part string, old, new types.Type) {}

func (d *differ) typeChanged(obj types.Object, part string, old, new types.Type) {}

// go/types always includes the argument and result names when formatting a signature.
// Since these can change without affecting compatibility, we don't want users to
// be distracted by them, so we remove them.
func removeNamesFromSignature(t types.Type) types.Type {}