From: Robert Griesemer
Date: Wed, 11 May 2022 23:21:45 +0000 (-0700)
Subject: spec: state that variable names must be unique in short var decls
X-Git-Tag: go1.19beta1~287
X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=2bea43b0e7f3e636ffc8239f9d3fccdd5d763c8b;p=gostls13.git
spec: state that variable names must be unique in short var decls
Fixes #45652.
Change-Id: I5e1434480c12815369a6ce204f3729eb63139125
Reviewed-on: https://go-review.googlesource.com/c/go/+/405757
Reviewed-by: Ian Lance Taylor
Reviewed-by: Matthew Dempsky
---
diff --git a/doc/go_spec.html b/doc/go_spec.html
index 069d33ba55..4f647cac10 100644
--- a/doc/go_spec.html
+++ b/doc/go_spec.html
@@ -2761,7 +2761,7 @@ It is shorthand for a regular variable declarat
with initializer expressions but no types:
-
+
"var" IdentifierList = ExpressionList .
@@ -2780,12 +2780,14 @@ variables provided they were originally declared earlier in the same block
and at least one of the non-blank variables is new.
As a consequence, redeclaration can only appear in a multi-variable short declaration.
Redeclaration does not introduce a new variable; it just assigns a new value to the original.
+The non-blank variable names on the left side of :=
+must be unique.
field1, offset := nextField(str, 0)
field2, offset := nextField(str, offset) // redeclares offset
-a, a := 1, 2 // illegal: double declaration of a or no new variable if a was declared elsewhere
+x, y, x := 1, 2, 3 // illegal: x repeated on left side of :=