summaryrefslogtreecommitdiff
path: root/src/cmd/gc/subr.c
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2008-12-19 09:03:24 -0800
committerRuss Cox <rsc@golang.org>2008-12-19 09:03:24 -0800
commita960c9149b61415346bf0591dc9052eb002dd820 (patch)
tree543a2191f9659b90c0730425381997be80d75b3a /src/cmd/gc/subr.c
parent902c03dbf5832d103d487160db5b1a414b8cad3d (diff)
downloadgolang-a960c9149b61415346bf0591dc9052eb002dd820.tar.gz
new error messages
x.go:11: illegal types for operand: AS *I *T (*interface vs *struct) R=r DELTA=10 (8 added, 0 deleted, 2 changed) OCL=21457 CL=21602
Diffstat (limited to 'src/cmd/gc/subr.c')
-rw-r--r--src/cmd/gc/subr.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/cmd/gc/subr.c b/src/cmd/gc/subr.c
index e180258bb..e1fb97d62 100644
--- a/src/cmd/gc/subr.c
+++ b/src/cmd/gc/subr.c
@@ -2140,6 +2140,14 @@ loop:
print(" %lT\n", tl);
if(tr != T)
print(" %lT\n", tr);
+
+ // common mistake: *struct and *interface.
+ if(tl && tr && isptr[tl->etype] && isptr[tr->etype]) {
+ if(tl->type->etype == TSTRUCT && tr->type->etype == TINTER)
+ print(" (*struct vs *interface)\n");
+ else if(tl->type->etype == TINTER && tr->type->etype == TSTRUCT)
+ print(" (*interface vs *struct)\n");
+ }
}
/*