return 0;
if(t1 == T)
return 1;
+ if(t1->embedded != t2->embedded)
+ return 0;
if(t1->nname != N && t1->nname->sym != S) {
if(t2->nname == N || t2->nname->sym == S)
return 0;
--- /dev/null
+//errchk $G $D/$F.go
+
+// 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.
+
+package main
+
+type T int
+
+func f() {
+ var x struct { T };
+ var y struct { T T };
+ x = y // ERROR "cannot"
+}
+
+type T1 struct { T }
+type T2 struct { T T }
+
+func g() {
+ var x T1;
+ var y T2;
+ x = y // ERROR "cannot"
+}
+