diff options
author | Russ Cox <rsc@golang.org> | 2009-01-21 14:51:57 -0800 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2009-01-21 14:51:57 -0800 |
commit | ae1af64b5ab2f4f30e5c11cd39c12a7b577fc0de (patch) | |
tree | e6e5387785e7225a21f67ca7ae15473f3d926bec /src/cmd/gc/subr.c | |
parent | ae0b945bd5fa28ac4f6009465222104086a2166c (diff) | |
download | golang-ae1af64b5ab2f4f30e5c11cd39c12a7b577fc0de.tar.gz |
disallow P.t for lowercase t and not our package P.
implement hiding lowercase methods m in
signatures by adding in a hash of the package name
to the type hash code.
remove remaining checks for internally-generated _ names:
they are all gone.
R=ken
OCL=23236
CL=23238
Diffstat (limited to 'src/cmd/gc/subr.c')
-rw-r--r-- | src/cmd/gc/subr.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/cmd/gc/subr.c b/src/cmd/gc/subr.c index 40912bce6..0650a634e 100644 --- a/src/cmd/gc/subr.c +++ b/src/cmd/gc/subr.c @@ -1683,12 +1683,8 @@ eqtype(Type *t1, Type *t2, int d) if(t1->nname != N && t1->nname->sym != S) { if(t2->nname == N || t2->nname->sym == S) return 0; - if(strcmp(t1->nname->sym->name, t2->nname->sym->name) != 0) { - // assigned names dont count - if(t1->nname->sym->name[0] != '_' || - t2->nname->sym->name[0] != '_') - return 0; - } + if(strcmp(t1->nname->sym->name, t2->nname->sym->name) != 0) + return 0; } t1 = t1->down; t2 = t2->down; @@ -2489,7 +2485,7 @@ expand0(Type *t) u = methtype(t); if(u != T) { for(f=u->method; f!=T; f=f->down) { - if(!exportname(f->sym->name) && strcmp(f->sym->package, package) != 0) + if(!exportname(f->sym->name) && strcmp(f->sym->opackage, package) != 0) continue; if(f->sym->uniq) continue; |