golang.org/x/exp@v0.0.0-20240506185415-9bf2ced13842/apidiff/testdata/other_packages.go (about) 1 // These tests demonstrate the correct handling of symbols 2 // in packages other than two being compared. 3 // See the lines in establishCorrespondence beginning 4 // 5 // if newn, ok := new.(*types.Named); ok 6 package p 7 8 // both 9 10 // gofmt insists on grouping imports, so old and new 11 // must both have both imports. 12 import ( 13 "io" 14 "text/tabwriter" 15 ) 16 17 // Here we have two named types in different packages. 18 // They have the same package-relative name, but we compare 19 // the package-qualified names. 20 21 // old 22 var V io.Writer 23 var _ tabwriter.Writer 24 25 // new 26 // i V: changed from io.Writer to text/tabwriter.Writer 27 var V tabwriter.Writer 28 var _ io.Writer 29 30 // Here one type is a basic type. 31 // Example from https://go.dev/issue/61385. 32 // apidiff would previously report 33 // F2: changed from func(io.ReadCloser) to func(io.ReadCloser) 34 // io.ReadCloser: changed from interface{io.Reader; io.Closer} to int 35 36 // old 37 func F1(io.ReadCloser) {} 38 39 // new 40 // i F1: changed from func(io.ReadCloser) to func(int) 41 func F1(int) {} 42 43 // both 44 func F2(io.ReadCloser) {}