aboutsummaryrefslogtreecommitdiff
path: root/src
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
commitc4416ac06b8bf6e086411c3ea6f22643b2d41d7a (patch)
tree543a2191f9659b90c0730425381997be80d75b3a /src
parentda0a7d7b8f896bc2117ce488c4e245d626ef8aba (diff)
downloadgo-c4416ac06b8bf6e086411c3ea6f22643b2d41d7a.tar.xz
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')
-rw-r--r--src/cmd/gc/go.h4
-rw-r--r--src/cmd/gc/subr.c8
2 files changed, 10 insertions, 2 deletions
diff --git a/src/cmd/gc/go.h b/src/cmd/gc/go.h
index ed2df2629d..bd1e34662c 100644
--- a/src/cmd/gc/go.h
+++ b/src/cmd/gc/go.h
@@ -351,10 +351,10 @@ enum
TFUNC,
TARRAY,
T_old_DARRAY,
- TSTRUCT,
+ TSTRUCT, // 23
TCHAN,
TMAP,
- TINTER,
+ TINTER, // 26
TFORW,
TFIELD,
TANY,
diff --git a/src/cmd/gc/subr.c b/src/cmd/gc/subr.c
index e180258bb8..e1fb97d62b 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");
+ }
}
/*