gc: Better typechecks and errors in switches.
Allow any type in switch on interface value.
Statically check typeswitch early.
Fixes #2423.
Fixes #2424.
R=rsc, dsymonds
CC=golang-dev
https://golang.org/cl/5339045
diff --git a/test/typeswitch3.go b/test/typeswitch3.go
new file mode 100644
index 0000000..99d08a2
--- /dev/null
+++ b/test/typeswitch3.go
@@ -0,0 +1,20 @@
+// errchk $G -e $D/$F.go
+
+// Copyright 2011 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.
+
+package main
+
+
+type I interface {
+ M()
+}
+
+func main(){
+ var x I
+ switch x.(type) {
+ case string: // ERROR "impossible"
+ println("FAIL")
+ }
+}