summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2009-09-16 11:49:35 -0700
committerRob Pike <r@golang.org>2009-09-16 11:49:35 -0700
commitf5588d86765baf63322d21bca251775a71fdefcd (patch)
tree873accce4e9f97cd9a213f431e46f641225774bb
parentcf5832be6b75a45a108528944d418dfa0b784668 (diff)
downloadgolang-f5588d86765baf63322d21bca251775a71fdefcd.tar.gz
slight refinement of select: evaluation is top to bottom, as in switches.
DELTA=9 (2 added, 4 deleted, 3 changed) OCL=34690 CL=34692
-rw-r--r--doc/go_spec.html12
1 files changed, 5 insertions, 7 deletions
diff --git a/doc/go_spec.html b/doc/go_spec.html
index 7509c0dd0..68a1ea73a 100644
--- a/doc/go_spec.html
+++ b/doc/go_spec.html
@@ -3609,9 +3609,10 @@ RecvExpr = [ Expression ( "=" | ":=" ) ] "&lt;-" Expression .
<p>
For all the send and receive expressions in the "select"
-statement, the channel expression is evaluated. Any expressions
-that appear on the right hand side of send expressions are also
-evaluated. If any of the resulting channels can proceed, one is
+statement, the channel expressions are evaluated, along with
+any expressions that appear on the right hand side of send expressions,
+in top-to-bottom order.
+If any of the resulting operations can proceed, one is
chosen and the corresponding communication and statements are
evaluated. Otherwise, if there is a default case, that executes;
if not, the statement blocks until one of the communications can
@@ -3654,10 +3655,6 @@ for { // send random sequence of bits to c
}
</pre>
-<font color=red>
-TODO: Make semantics more precise.
-</font>
-
<h3 id="Return_statements">Return statements</h3>
@@ -4489,6 +4486,7 @@ The following minimal alignment properties are guaranteed:
<ul>
<li><font color=red>Implementation does not honor the restriction on goto statements and targets (no intervening declarations).</font></li>
<li><font color=red>Gccgo does not implement the blank identifier.</font></li>
+ <li><font color=red>Method expressions are not implemented.</font></li>
</ul>
</div>