mirror of
https://github.com/golang/go
synced 2024-11-21 13:34:39 -07:00
spec: disallow unused labels
Also change labelled examples to use gofmt formatting. R=gri, r, jnml CC=golang-dev https://golang.org/cl/4287046
This commit is contained in:
parent
f192891786
commit
108564dabc
@ -1,5 +1,5 @@
|
||||
<!-- title The Go Programming Language Specification -->
|
||||
<!-- subtitle Version of March 11, 2011 -->
|
||||
<!-- subtitle Version of March 15, 2011 -->
|
||||
|
||||
<!--
|
||||
TODO
|
||||
@ -1472,6 +1472,7 @@ declarations.
|
||||
Labels are declared by <a href="#Labeled_statements">labeled statements</a> and are
|
||||
used in the <code>break</code>, <code>continue</code>, and <code>goto</code>
|
||||
statements (§<a href="#Break_statements">Break statements</a>, §<a href="#Continue_statements">Continue statements</a>, §<a href="#Goto_statements">Goto statements</a>).
|
||||
It is illegal to define a label that is never used.
|
||||
In contrast to other identifiers, labels are not block scoped and do
|
||||
not conflict with identifiers that are not labels. The scope of a label
|
||||
is the body of the function in which it is declared and excludes
|
||||
@ -4256,11 +4257,13 @@ terminates
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
L: for i < n {
|
||||
switch i {
|
||||
case 5: break L
|
||||
L:
|
||||
for i < n {
|
||||
switch i {
|
||||
case 5:
|
||||
break L
|
||||
}
|
||||
}
|
||||
}
|
||||
</pre>
|
||||
|
||||
<h3 id="Continue_statements">Continue statements</h3>
|
||||
@ -4302,8 +4305,8 @@ instance, this example:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
goto L // BAD
|
||||
v := 3
|
||||
goto L // BAD
|
||||
v := 3
|
||||
L:
|
||||
</pre>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user