aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2021-09-10 17:06:43 -0700
committerRobert Griesemer <gri@golang.org>2021-09-13 22:57:34 +0000
commit9a58aa267e3686c86d3e5bf1d14117a2a127838c (patch)
tree4fd7c6b5ab41ff640c7688e71bff99eeef097041
parent42057e9848d40fc6181cd7a68fd788c652772b8d (diff)
downloadgo-9a58aa267e3686c86d3e5bf1d14117a2a127838c.tar.gz
go-9a58aa267e3686c86d3e5bf1d14117a2a127838c.zip
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>
-rw-r--r--doc/go_spec.html7
1 files changed, 3 insertions, 4 deletions
diff --git a/doc/go_spec.html b/doc/go_spec.html
index 3e97974d6d..6cc0b796b9 100644
--- a/doc/go_spec.html
+++ b/doc/go_spec.html
@@ -1,6 +1,6 @@
<!--{
"Title": "The Go Programming Language Specification",
- "Subtitle": "Version of Aug 23, 2021",
+ "Subtitle": "Version of Sep 14, 2021",
"Path": "/ref/spec"
}-->
@@ -4561,9 +4561,8 @@ SimpleStmt = EmptyStmt | ExpressionStmt | SendStmt | IncDecStmt | Assignment | S
<h3 id="Terminating_statements">Terminating statements</h3>
<p>
-A <i>terminating statement</i> prevents execution of all statements that lexically
-appear after it in the same <a href="#Blocks">block</a>. The following statements
-are terminating:
+A <i>terminating statement</i> interrupts the regular flow of control in
+a <a href="#Blocks">block</a>. The following statements are terminating:
</p>
<ol>