From 57a62a8bcb4016cf438c350eecbc4350a489945f Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 8 Jun 2010 15:51:31 -0700 Subject: [PATCH] bug284: make conversion legal, fix error patterns R=gri CC=golang-dev https://golang.org/cl/1612041 --- test/bugs/bug284.go | 16 ++++++++++------ 1 file 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