| package main |
| |
| // Test generic sort function with two different pointer types in different packages, |
| // make sure only one instantiation is created. |
| |
| import ( |
| "fmt" |
| |
| "cmd/compile/internal/test/testdata/mysort" |
| ) |
| |
| type MyString struct { |
| string |
| } |
| |
| func (a *MyString) Less(b *MyString) bool { |
| return a.string < b.string |
| } |
| |
| func main() { |
| mysort.F() |
| |
| sl1 := []*mysort.MyInt{{7}, {1}, {4}, {6}} |
| mysort.Sort(sl1) |
| fmt.Printf("%v %v %v %v\n", sl1[0], sl1[1], sl1[2], sl1[3]) |
| |
| sl2 := []*MyString{{"when"}, {"in"}, {"the"}, {"course"}, {"of"}} |
| mysort.Sort(sl2) |
| fmt.Printf("%v %v %v %v %v\n", sl2[0], sl2[1], sl2[2], sl2[3], sl2[4]) |
| } |