]> Cypherpunks repositories - gostls13.git/commitdiff
spec: clarify that break/continue do not work across function boundaries
authorRobert Griesemer <gri@golang.org>
Wed, 28 May 2014 15:43:47 +0000 (08:43 -0700)
committerRobert Griesemer <gri@golang.org>
Wed, 28 May 2014 15:43:47 +0000 (08:43 -0700)
Also made it extra clear for goto statements (even though label scopes
are already limited to the function defining a label).

Fixes #8040.

LGTM=r, rsc
R=r, rsc, iant, ken
CC=golang-codereviews
https://golang.org/cl/99550043

doc/go_spec.html

index 11f6a90e631844f86c91947c2ce7ffa476f249ba..baa0ecf40b15509c2317a095de9d5e86c66a98f5 100644 (file)
@@ -1,6 +1,6 @@
 <!--{
        "Title": "The Go Programming Language Specification",
-       "Subtitle": "Version of May 22, 2014",
+       "Subtitle": "Version of May 28, 2014",
        "Path": "/ref/spec"
 }-->
 
@@ -5093,7 +5093,8 @@ func f(n int) (res int, err error) {
 A "break" statement terminates execution of the innermost
 <a href="#For_statements">"for"</a>,
 <a href="#Switch_statements">"switch"</a>, or
-<a href="#Select_statements">"select"</a> statement.
+<a href="#Select_statements">"select"</a> statement
+within the same function.
 </p>
 
 <pre class="ebnf">
@@ -5127,6 +5128,7 @@ OuterLoop:
 <p>
 A "continue" statement begins the next iteration of the
 innermost <a href="#For_statements">"for" loop</a> at its post statement.
+The "for" loop must be within the same function.
 </p>
 
 <pre class="ebnf">
@@ -5154,7 +5156,8 @@ RowLoop:
 <h3 id="Goto_statements">Goto statements</h3>
 
 <p>
-A "goto" statement transfers control to the statement with the corresponding label.
+A "goto" statement transfers control to the statement with the corresponding label
+within the same function.
 </p>
 
 <pre class="ebnf">