]> Cypherpunks repositories - gostls13.git/commitdiff
go spec: restricted expressions may still be parenthesized
authorRobert Griesemer <gri@golang.org>
Mon, 2 May 2011 16:16:31 +0000 (09:16 -0700)
committerRobert Griesemer <gri@golang.org>
Mon, 2 May 2011 16:16:31 +0000 (09:16 -0700)
No language change.

- added a few examples with parentheses
- added a corresponding sentence to assignments
  (this explicitly permits: (_) = 0, currently allowed by 6g,
  gofmt, but marked as an error by gccgo).

R=rsc, r, iant
CC=golang-dev
https://golang.org/cl/4446071

doc/go_spec.html

index 886f89d126dda1c1078b9b85b0d5e2f84b223808..e8f7894dbc28d6b4c68f37694177c3e2d7735e29 100644 (file)
@@ -1,5 +1,5 @@
 <!-- title The Go Programming Language Specification -->
-<!-- subtitle Version of Apr 22, 2011 -->
+<!-- subtitle Version of May 2, 2011 -->
 
 <!--
 TODO
@@ -3522,10 +3522,9 @@ Error: log.Panic("error encountered")
 
 <p>
 Function calls, method calls, and receive operations
-can appear in statement context.
+can appear in statement context. Such statements may be parenthesized.
 </p>
 
-
 <pre class="ebnf">
 ExpressionStmt = Expression .
 </pre>
@@ -3534,6 +3533,7 @@ ExpressionStmt = Expression .
 h(x+y)
 f.Close()
 &lt;-ch
+(&lt;-ch)
 </pre>
 
 
@@ -3604,15 +3604,15 @@ assign_op = [ add_op | mul_op ] "=" .
 
 <p>
 Each left-hand side operand must be <a href="#Address_operators">addressable</a>,
-a map index expression,
-or the <a href="#Blank_identifier">blank identifier</a>.
+a map index expression, or the <a href="#Blank_identifier">blank identifier</a>.
+Operands may be parenthesized.
 </p>
 
 <pre>
 x = 1
 *p = f()
 a[i] = 23
-k = &lt;-ch
+(k) = &lt;-ch  // same as: k = &lt;-ch
 </pre>
 
 <p>
@@ -4131,7 +4131,7 @@ case i1 = &lt;-c1:
        print("received ", i1, " from c1\n")
 case c2 &lt;- i2:
        print("sent ", i2, " to c2\n")
-case i3, ok := &lt;-c3:
+case i3, ok := (&lt;-c3):  // same as: i3, ok := &lt;-c3
        if ok {
                print("received ", i3, " from c3\n")
        } else {