mirror of
https://github.com/golang/go
synced 2024-11-17 16:04:47 -07:00
spec: fix prose about terminating statements
CL 85215 added prose to provide some minimal intuition for the definition of a "terminating statement". While the original definition was perfectly fine, the added prose was actually incorrect: If the terminating statement is a goto, it might jump to a labeled statement following that goto in the same block (it could be the very next statement), and thus a terminating statement does not in fact "prevent execution of all statements that lexically appear after it in the same block". Rather than explaining the special case for gotos with targets that are lexically following the goto in the same block, this CL opts for a simpler approach. Thanks to @3bodar (Github) for finding this. Fixes #48323. Change-Id: I8031346250341d038938a1ce6a75d3e687d32c37 Reviewed-on: https://go-review.googlesource.com/c/go/+/349172 Trust: Robert Griesemer <gri@golang.org> Trust: Emmanuel Odeke <emmanuel@orijtech.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com> Reviewed-by: Rob Pike <r@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
42057e9848
commit
9a58aa267e
@ -1,6 +1,6 @@
|
|||||||
<!--{
|
<!--{
|
||||||
"Title": "The Go Programming Language Specification",
|
"Title": "The Go Programming Language Specification",
|
||||||
"Subtitle": "Version of Aug 23, 2021",
|
"Subtitle": "Version of Sep 14, 2021",
|
||||||
"Path": "/ref/spec"
|
"Path": "/ref/spec"
|
||||||
}-->
|
}-->
|
||||||
|
|
||||||
@ -4561,9 +4561,8 @@ SimpleStmt = EmptyStmt | ExpressionStmt | SendStmt | IncDecStmt | Assignment | S
|
|||||||
<h3 id="Terminating_statements">Terminating statements</h3>
|
<h3 id="Terminating_statements">Terminating statements</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
A <i>terminating statement</i> prevents execution of all statements that lexically
|
A <i>terminating statement</i> interrupts the regular flow of control in
|
||||||
appear after it in the same <a href="#Blocks">block</a>. The following statements
|
a <a href="#Blocks">block</a>. The following statements are terminating:
|
||||||
are terminating:
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
|
Loading…
Reference in New Issue
Block a user