]> Cypherpunks repositories - gostls13.git/commitdiff
gc: bug277 - new conversion syntax
authorRuss Cox <rsc@golang.org>
Mon, 24 May 2010 22:25:30 +0000 (15:25 -0700)
committerRuss Cox <rsc@golang.org>
Mon, 24 May 2010 22:25:30 +0000 (15:25 -0700)
R=ken2
CC=golang-dev
https://golang.org/cl/1220046

src/cmd/gc/go.y
test/fixedbugs/bug277.go [moved from test/bugs/bug277.go with 100% similarity]

index 2af6057e7c27f696f14b67df112d66026862faa1..8128e8608e29a7da216fa0f9bb517d160db75e28 100644 (file)
@@ -70,7 +70,7 @@
 %type  <list>  interfacedcl_list vardcl vardcl_list structdcl structdcl_list
 %type  <list>  common_dcl constdcl constdcl1 constdcl_list typedcl_list
 
-%type  <node>  convtype dotdotdot
+%type  <node>  convtype comptype dotdotdot
 %type  <node>  indcl interfacetype structtype ptrtype
 %type  <node>  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
similarity index 100%
rename from test/bugs/bug277.go
rename to test/fixedbugs/bug277.go