summaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/test/testdata/ptrsort.go
blob: d26ba581d91dd9092e122542980643e601f03a99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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])
}