| // errorcheck | |
| // Copyright 2009 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| // Verify that various erroneous type switches are caught by the compiler. | |
| // Does not compile. | |
| package main | |
| import "io" | |
| func whatis(x interface{}) string { | |
| switch x.(type) { | |
| case int: | |
| return "int" | |
| case int: // ERROR "duplicate" | |
| return "int8" | |
| case io.Reader: | |
| return "Reader1" | |
| case io.Reader: // ERROR "duplicate" | |
| return "Reader2" | |
| case interface { | |
| r() | |
| w() | |
| }: | |
| return "rw" | |
| case interface { // ERROR "duplicate" | |
| w() | |
| r() | |
| }: | |
| return "wr" | |
| } | |
| return "" | |
| } |