From: Russ Cox Date: Fri, 24 Oct 2008 21:29:01 +0000 (-0700) Subject: fix method function type compare bug X-Git-Tag: weekly.2009-11-06~2898 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=0be746d5810b07c8cf45833a55c3cf8bba4d2c53;p=gostls13.git fix method function type compare bug R=ken OCL=17815 CL=17815 --- diff --git a/src/cmd/gc/dcl.c b/src/cmd/gc/dcl.c index f836f3ba74..9f888484dc 100644 --- a/src/cmd/gc/dcl.c +++ b/src/cmd/gc/dcl.c @@ -279,8 +279,10 @@ addmethod(Node *n, Type *t, int local) d = f; continue; } - if(!eqtype(t, f->type, 0)) + if(!eqtype(t, f->type, 0)) { yyerror("method redeclared: %S of type %S", sf, st); + print("\t%T\n\t%T\n", f->type, t); + } return; } @@ -340,7 +342,8 @@ funchdr(Node *n) if(!eqargs(n->type, on->type)) yyerror("forward declarations not the same: %S", s); } else { - yyerror("redeclare of function: %S", s); + yyerror("function redeclared: %S", s); + print("\t%T\n\t%T\n", on->type, n->type); on = N; } } diff --git a/src/cmd/gc/subr.c b/src/cmd/gc/subr.c index 4e1a9ea3a3..dfe5913d21 100644 --- a/src/cmd/gc/subr.c +++ b/src/cmd/gc/subr.c @@ -1773,7 +1773,7 @@ eqtype(Type *t1, Type *t2, int d) if(t1->etype != TSTRUCT || t2->etype != TSTRUCT) return 0; - if(!eqtype(t1->type, t2->type, 0)) + if(!eqtype(t1, t2, 0)) return 0; t1 = t1->down;