]> Cypherpunks repositories - gostls13.git/commitdiff
bug284: make conversion legal, fix error patterns
authorRuss Cox <rsc@golang.org>
Tue, 8 Jun 2010 22:51:31 +0000 (15:51 -0700)
committerRuss Cox <rsc@golang.org>
Tue, 8 Jun 2010 22:51:31 +0000 (15:51 -0700)
R=gri
CC=golang-dev
https://golang.org/cl/1612041

test/bugs/bug284.go

index b9edc31766dfd6799716d92b7ba808bf4b80abe5..9e9949bed7f4227347a76e5c79b1bd424c2eea47 100644 (file)
@@ -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