]> Cypherpunks repositories - gostls13.git/commitdiff
disallow other package's names in struct field dot.
authorRuss Cox <rsc@golang.org>
Fri, 16 Jan 2009 23:25:52 +0000 (15:25 -0800)
committerRuss Cox <rsc@golang.org>
Fri, 16 Jan 2009 23:25:52 +0000 (15:25 -0800)
R=ken
OCL=22996
CL=22996

src/cmd/gc/dcl.c
src/cmd/gc/go.h
src/cmd/gc/go.y

index 50967b53e3efa1e54019b69044a2e670b0971be3..d5ca7c4d73c905a8212828919bd15fbb73ac7f1a 100644 (file)
@@ -512,6 +512,8 @@ loop:
                f->nname = n->left;
                f->embedded = n->embedded;
                f->sym = f->nname->sym;
+               if(pkgimportname != S && !exportname(f->sym->name))
+                       f->sym = pkglookup(f->sym->name, pkgimportname->name);
        }
 
        *t = f;
index ff699059750d657fdd0857fa482befaa3c91bb05..0d899aaee9a7293ce7f91601ea1e87d5abda179c 100644 (file)
@@ -741,6 +741,7 @@ void        constiter(Node*, Type*, Node*);
  */
 void   renamepkg(Node*);
 void   autoexport(Sym*);
+int    exportname(char*);
 void   exportsym(Sym*);
 void   packagesym(Sym*);
 void   dumpe(Sym*);
index 442baadda49327c73e987b7d951db50075966845..3d62bb3b36f6a8d54549a41943340018f30087f9 100644 (file)
@@ -160,6 +160,7 @@ import_there:
        {
                checkimports();
                unimportfile();
+               pkgimportname = S;
        }
 |      LIMPORT '$' '$' hidden_import_list '$' '$'
        {