diff options
author | Russ Cox <rsc@golang.org> | 2010-06-08 15:51:31 -0700 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2010-06-08 15:51:31 -0700 |
commit | 57a62a8bcb4016cf438c350eecbc4350a489945f (patch) | |
tree | 4a76cf85530bc334a474b0045a64405ae4bb31cb | |
parent | 2ec58f73e39d933faf41eebe55894332c6578641 (diff) | |
download | go-57a62a8bcb4016cf438c350eecbc4350a489945f.tar.gz go-57a62a8bcb4016cf438c350eecbc4350a489945f.zip |
bug284: make conversion legal, fix error patterns
R=gri
CC=golang-dev
https://golang.org/cl/1612041
-rw-r--r-- | test/bugs/bug284.go | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/test/bugs/bug284.go b/test/bugs/bug284.go index b9edc31766..9e9949bed7 100644 --- a/test/bugs/bug284.go +++ b/test/bugs/bug284.go @@ -1,4 +1,4 @@ -// errchk $G $D/$F.go +// errchk $G -e $D/$F.go // Copyright 2010 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style @@ -85,11 +85,15 @@ func main() { } var q1 Q1 var q2 Q2 + var ps1 *S1 q0 = q0 q0 = q1 q0 = (*struct { x int - })(q2) // legal because of special conversion exception for pointers + })(ps1) // legal because of special conversion exception for pointers + q0 = (*struct { + x int + })(q2) // ERROR "cannot" q1 = q0 q1 = q1 q1 = Q1(q2) // ERROR "cannot" @@ -127,12 +131,12 @@ func main() { x0 = x1 x0 = interface { f() int - }(x2) // ERROR "cannot"|"need type assertion" + }(x2) // ERROR "cannot|need type assertion" x1 = x0 x1 = x1 - x1 = X1(x2) // ERROR "cannot"|"need type assertion" - x2 = X2(x0) // ERROR "cannot"|"need type assertion" - x2 = X2(x1) // ERROR "cannot"|"need type assertion" + x1 = X1(x2) // ERROR "cannot|need type assertion" + x2 = X2(x0) // ERROR "cannot|need type assertion" + x2 = X2(x1) // ERROR "cannot|need type assertion" x2 = x2 type L1 []int |