diff options
author | R?my Oudompheng <oudomphe@phare.normalesup.org> | 2014-01-31 00:30:56 +0100 |
---|---|---|
committer | R?my Oudompheng <oudomphe@phare.normalesup.org> | 2014-01-31 00:30:56 +0100 |
commit | 6e99c1fdfc85541c8b4d55ad728240f5dc7ecc85 (patch) | |
tree | f4f8fbabcd99ebd45344e8d1b729b25bb6b67cf7 /test | |
parent | 41b2f193c1eec265104e772b35d9e812619aeda1 (diff) | |
download | go-6e99c1fdfc85541c8b4d55ad728240f5dc7ecc85.tar.gz |
cmd/gc: do not consider length zero arrays as comparable.
Array values are comparable if values of the array element type
are comparable.
Fixes issue 6526.
LGTM=khr
R=rsc, bradfitz, khr
CC=golang-codereviews
https://codereview.appspot.com/58580043
Diffstat (limited to 'test')
-rw-r--r-- | test/cmp6.go | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/test/cmp6.go b/test/cmp6.go index 839c274bc..7cf76044e 100644 --- a/test/cmp6.go +++ b/test/cmp6.go @@ -18,7 +18,10 @@ type T3 struct{ z []int } var t3 T3 -type T4 struct { _ []int; a float64 } +type T4 struct { + _ []int + a float64 +} var t4 T4 @@ -51,6 +54,14 @@ func main() { use(p3 == p1) use(p3 == p2) + // Arrays are comparable if and only if their element type is comparable. + var a1 [1]int + var a2 [1]func() + var a3 [0]func() + use(a1 == a1) + use(a2 == a2) // ERROR "invalid operation|invalid comparison" + use(a3 == a3) // ERROR "invalid operation|invalid comparison" + // Comparison of structs should have a good message use(t3 == t3) // ERROR "struct|expected" use(t4 == t4) // ERROR "cannot be compared|non-comparable" |