aboutsummaryrefslogtreecommitdiff
path: root/test/blank1.go
diff options
context:
space:
mode:
authorRémy Oudompheng <oudomphe@phare.normalesup.org>2013-07-02 09:08:43 +0200
committerRémy Oudompheng <oudomphe@phare.normalesup.org>2013-07-02 09:08:43 +0200
commit428ea6865c7eff6d8632faa18335c64d4ae9f422 (patch)
tree2da4ef887a923970bf4beefa78fc08422f33c119 /test/blank1.go
parentefced7c6e984f26b4c275b19ba61f2c2629d95ea (diff)
downloadgo-428ea6865c7eff6d8632faa18335c64d4ae9f422.tar.gz
go-428ea6865c7eff6d8632faa18335c64d4ae9f422.zip
cmd/gc: fix computation of equality class of types.
A struct with a single field was considered as equivalent to the field type, which is incorrect is the field is blank. Fields with padding could make the compiler think some types are comparable when they are not. Fixes #5698. R=rsc, golang-dev, daniel.morsing, bradfitz, gri, r CC=golang-dev https://golang.org/cl/10271046
Diffstat (limited to 'test/blank1.go')
-rw-r--r--test/blank1.go7
1 files changed, 7 insertions, 0 deletions
diff --git a/test/blank1.go b/test/blank1.go
index 4edb2db702..f46a50051b 100644
--- a/test/blank1.go
+++ b/test/blank1.go
@@ -13,9 +13,16 @@ var t struct {
_ int
}
+type T struct {
+ _ []int
+}
+
func main() {
_() // ERROR "cannot use _ as value"
x := _+1 // ERROR "cannot use _ as value"
_ = x
_ = t._ // ERROR "cannot refer to blank field"
+
+ var v1, v2 T
+ _ = v1 == v2 // ERROR "cannot be compared|non-comparable"
}