]> Cypherpunks.ru repositories - gostls13.git/commitdiff
type switches: test for pathological case
authorRobert Griesemer <gri@golang.org>
Fri, 19 Aug 2011 16:31:50 +0000 (09:31 -0700)
committerRobert Griesemer <gri@golang.org>
Fri, 19 Aug 2011 16:31:50 +0000 (09:31 -0700)
R=rsc, r
CC=golang-dev
https://golang.org/cl/4894057

test/typeswitch2.go

index f8fe396eae30ec0cf21dda50099461e2c200f50e..57c5a18ab2da952bbfac1007252c12583955ea1a 100644 (file)
@@ -18,11 +18,27 @@ func whatis(x interface{}) string {
                return "Reader1"
        case io.Reader: // ERROR "duplicate"
                return "Reader2"
-       case interface { r(); w() }:
+       case interface {
+               r()
+               w()
+       }:
                return "rw"
-       case interface { w(); r() }:    // ERROR "duplicate"
+       case interface {
+               w()
+               r()
+       }: // ERROR "duplicate"
                return "wr"
-       
+
        }
        return ""
 }
+
+func notused(x interface{}) {
+       // The first t is in a different scope than the 2nd t; it cannot
+       // be accessed (=> declared and not used error); but it is legal
+       // to declare it.
+       switch t := 0; t := x.(type) { // ERROR "declared and not used"
+       case int:
+               _ = t // this is using the t of "t := x.(type)"
+       }
+}