blob: f4d18789fdcf560216833c94fa9a153e454193fb [file] [log] [blame]
// These tests demonstrate the correct handling of symbols
// in packages other than two being compared.
// See the lines in establishCorrespondence beginning
//
// if newn, ok := new.(*types.Named); ok
package p
// both
// gofmt insists on grouping imports, so old and new
// must both have both imports.
import (
"io"
"text/tabwriter"
)
// Here we have two named types in different packages.
// They have the same package-relative name, but we compare
// the package-qualified names.
// old
var V io.Writer
var _ tabwriter.Writer
// new
// i V: changed from io.Writer to text/tabwriter.Writer
var V tabwriter.Writer
var _ io.Writer
// Here one type is a basic type.
// Example from https://go.dev/issue/61385.
// apidiff would previously report
// F2: changed from func(io.ReadCloser) to func(io.ReadCloser)
// io.ReadCloser: changed from interface{io.Reader; io.Closer} to int
// old
func F1(io.ReadCloser) {}
// new
// i F1: changed from func(io.ReadCloser) to func(int)
func F1(int) {}
// both
func F2(io.ReadCloser) {}