]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/gc: tweak interface satisfaction error message
authorRuss Cox <rsc@golang.org>
Tue, 16 Jul 2013 00:39:07 +0000 (20:39 -0400)
committerRuss Cox <rsc@golang.org>
Tue, 16 Jul 2013 00:39:07 +0000 (20:39 -0400)
"M requires pointer receiver" can be misinterpreted to
mean that method M should have a pointer receiver but
does not. In fact the message means "M has a pointer
receiver" (and you don't have a pointer).

Fixes #5891.

R=ken2
CC=golang-dev
https://golang.org/cl/11313043

src/cmd/gc/subr.c
src/cmd/gc/typecheck.c

index dee5b016109a6e4229bc518fa9ab18fcf829f478..3b1b0543e09fbfc2072e4c7783481386c3aba525 100644 (file)
@@ -1260,7 +1260,7 @@ assignop(Type *src, Type *dst, char **why)
                                        "\t\thave %S%hhT\n\t\twant %S%hhT", src, dst, missing->sym,
                                        have->sym, have->type, missing->sym, missing->type);
                        else if(ptr)
-                               *why = smprint(":\n\t%T does not implement %T (%S method requires pointer receiver)",
+                               *why = smprint(":\n\t%T does not implement %T (%S method has pointer receiver)",
                                        src, dst, missing->sym);
                        else if(have)
                                *why = smprint(":\n\t%T does not implement %T (missing %S method)\n"
index d4dc0813da20b923dfd2ce6e605e55521aea638c..54ce5b3ea677d041a126ae93debd03e9bbd1c52b 100644 (file)
@@ -839,7 +839,7 @@ reswitch:
                                        "\t\thave %S%hhT\n\t\twant %S%hhT", n->type, t, missing->sym,
                                        have->sym, have->type, missing->sym, missing->type);
                        else if(ptr)
-                               yyerror("impossible type assertion:\n\t%T does not implement %T (%S method requires pointer receiver)",
+                               yyerror("impossible type assertion:\n\t%T does not implement %T (%S method has pointer receiver)",
                                        n->type, t, missing->sym);
                        else if(have)
                                yyerror("impossible type assertion:\n\t%T does not implement %T (missing %S method)\n"