diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/cmd/gc/go.y | 15 | ||||
| -rw-r--r-- | src/cmd/gc/subr.c | 8 |
2 files changed, 19 insertions, 4 deletions
diff --git a/src/cmd/gc/go.y b/src/cmd/gc/go.y index 8128e8608..5aac463c8 100644 --- a/src/cmd/gc/go.y +++ b/src/cmd/gc/go.y @@ -74,6 +74,8 @@ %type <node> indcl interfacetype structtype ptrtype %type <node> recvchantype non_recvchantype othertype fnret_type fntype +%type <val> hidden_tag + %type <sym> hidden_importsym hidden_pkg_importsym %type <node> hidden_constant hidden_literal hidden_dcl @@ -1709,12 +1711,12 @@ hidden_dcl: } hidden_structdcl: - sym hidden_type oliteral + sym hidden_type hidden_tag { $$ = nod(ODCLFIELD, newname($1), typenod($2)); $$->val = $3; } -| '?' hidden_type oliteral +| '?' hidden_type hidden_tag { Sym *s; @@ -1728,6 +1730,15 @@ hidden_structdcl: $$->val = $3; } +hidden_tag: + { + $$.ctype = CTxxx; + } +| ':' LLITERAL // extra colon avoids conflict with "" looking like beginning of "".typename + { + $$ = $2; + } + hidden_interfacedcl: sym '(' ohidden_funarg_list ')' ohidden_funres { diff --git a/src/cmd/gc/subr.c b/src/cmd/gc/subr.c index b0192adf3..cf7b1865c 100644 --- a/src/cmd/gc/subr.c +++ b/src/cmd/gc/subr.c @@ -1295,8 +1295,12 @@ Tpretty(Fmt *fp, Type *t) fmtprint(fp, "... %T", t->type->type); } else fmtprint(fp, "%T", t->type); - if(t->note) - fmtprint(fp, " \"%Z\"", t->note); + if(t->note) { + fmtprint(fp, " "); + if(exporting) + fmtprint(fp, ":"); + fmtprint(fp, "\"%Z\"", t->note); + } return 0; case TFORW: |
