// 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 "" | |
} |