add test for yesterday's interface rule change (interface/convert1.go).
move interface tests to subdirectory.

R=r
DELTA=1632  (827 added, 804 deleted, 1 changed)
OCL=29181
CL=29191
diff --git a/test/interface/receiver.go b/test/interface/receiver.go
new file mode 100644
index 0000000..438fea0
--- /dev/null
+++ b/test/interface/receiver.go
@@ -0,0 +1,104 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out
+
+// 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.
+
+// Implicit methods for embedded types.
+// Mixed pointer and non-pointer receivers.
+
+package main
+
+type T int
+var nv, np int
+
+func (t T) V() {
+	if t != 42 {
+		panic(t)
+	}
+	nv++
+}
+
+func (t *T) P() {
+	if *t != 42 {
+		panic(t, *t)
+	}
+	np++
+}
+
+type V interface { V() }
+type P interface { P(); V() }
+
+type S struct {
+	T;
+}
+
+type SP struct {
+	*T;
+}
+
+func main() {
+	var t T;
+	var v V;
+	var p P;
+
+	t = 42;
+
+	t.P();
+	t.V();
+
+	v = t;
+	v.V();
+
+	p = &t;
+	p.P();
+	p.V();
+
+	v = &t;
+	v.V();
+
+//	p = t;	// ERROR
+
+//	println("--struct--");
+	var s S;
+	s.T = 42;
+	s.P();
+	s.V();
+
+	v = s;
+	s.V();
+
+	p = &s;
+	p.P();
+	p.V();
+
+	v = &s;
+	v.V();
+
+//	p = s;	// ERROR
+
+//	println("--struct pointer--");
+	var sp SP;
+	sp.T = &t;
+	sp.P();
+	sp.V();
+
+	v = sp;
+	sp.V();
+
+	p = &sp;
+	p.P();
+	p.V();
+
+	v = &sp;
+	v.V();
+
+	p = sp;	// not error
+	p.P();
+	p.V();
+
+	if nv != 13 || np != 7 {
+		panicln("bad count", nv, np)
+	}
+}
+