Commit 8c2bc441 authored by Russ Cox's avatar Russ Cox

gc: fix shift/reduce conflict in go.y export syntax

Fixes #771.

R=ken2
CC=golang-dev
https://golang.org/cl/1267042
parent 9fc9246b
......@@ -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
{
......
......@@ -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:
......
// Copyright 2010 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package p1
type T struct {
f func() "x"
}
// Copyright 2010 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package p2
import _ "./p1"
// $G $D/$F.dir/p1.go && $G $D/$F.dir/p2.go
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
ignored
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment