From 2e9b67afa67cc8f7aca058997fe84a92e5c33962 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Mon, 24 May 2010 15:25:30 -0700 Subject: [PATCH] gc: bug277 - new conversion syntax R=ken2 CC=golang-dev https://golang.org/cl/1220046 --- src/cmd/gc/go.y | 31 ++++++++++-------------------- test/{bugs => fixedbugs}/bug277.go | 0 2 files changed, 10 insertions(+), 21 deletions(-) rename test/{bugs => fixedbugs}/bug277.go (100%) diff --git a/src/cmd/gc/go.y b/src/cmd/gc/go.y index 2af6057e7c2..8128e8608e2 100644 --- a/src/cmd/gc/go.y +++ b/src/cmd/gc/go.y @@ -70,7 +70,7 @@ %type interfacedcl_list vardcl vardcl_list structdcl structdcl_list %type common_dcl constdcl constdcl1 constdcl_list typedcl_list -%type convtype dotdotdot +%type convtype comptype dotdotdot %type indcl interfacetype structtype ptrtype %type recvchantype non_recvchantype othertype fnret_type fntype @@ -822,7 +822,7 @@ pexpr: $$ = nod(OCALL, $1, N); $$->list = list1($3); } -| convtype lbrace braced_keyval_list '}' +| comptype lbrace braced_keyval_list '}' { // composite expression $$ = nod(OCOMPLIT, N, $1); @@ -886,7 +886,7 @@ sym: LNAME name: - sym + sym %prec NotParen { $$ = oldname($1); if($$->pack != N) @@ -896,24 +896,6 @@ name: labelname: new_name -convtype: - '[' oexpr ']' ntype - { - // array literal - $$ = nod(OTARRAY, $2, $4); - } -| '[' LDDD ']' ntype - { - // array literal of nelem - $$ = nod(OTARRAY, nod(ODDD, N, N), $4); - } -| LMAP '[' ntype ']' ntype - { - // map literal - $$ = nod(OTMAP, $3, $5); - } -| structtype - /* * to avoid parsing conflicts, type is split into * channel types @@ -963,6 +945,13 @@ non_recvchantype: $$ = $2; } +convtype: + fntype +| othertype + +comptype: + othertype + fnret_type: recvchantype | fntype diff --git a/test/bugs/bug277.go b/test/fixedbugs/bug277.go similarity index 100% rename from test/bugs/bug277.go rename to test/fixedbugs/bug277.go