]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.17] go/types: don't override x.mode before using it
authorRobert Griesemer <gri@golang.org>
Fri, 20 Aug 2021 04:35:57 +0000 (21:35 -0700)
committerCherry Mui <cherryyz@google.com>
Wed, 1 Sep 2021 22:32:32 +0000 (22:32 +0000)
Changing the mode of x before using the old value is clearly wrong.
And x is not needed anymore afterward so besides being misplaced,
the assignment is not needed in the first place.

Tested manually as it's a bit complicated to set up a test.

Fixes #47854.

Change-Id: I06f1fa9443eb98009b4276f566d557fd52f1d6d3
Reviewed-on: https://go-review.googlesource.com/c/go/+/343809
Trust: Robert Griesemer <gri@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
(cherry picked from commit e17439e0877d6ddb6881d9eb59758c27cc62f930)
Reviewed-on: https://go-review.googlesource.com/c/go/+/347149
Run-TryBot: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Findley <rfindley@google.com>
Reviewed-by: Robert Findley <rfindley@google.com>
Trust: Robert Findley <rfindley@google.com>
Trust: Cherry Mui <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>

src/go/types/call.go

index 631ea426c6bbf42e5fe613e4936942a2e253d055..336b526a2843d3b977986a07ba3b9bfeef6a4e8d 100644 (file)
@@ -224,7 +224,6 @@ func (check *Checker) exprList(elist []ast.Expr, allowCommaOk bool) (xlist []*op
                // exactly one (possibly invalid or comma-ok) value
                xlist = []*operand{&x}
                if allowCommaOk && (x.mode == mapindex || x.mode == commaok || x.mode == commaerr) {
-                       x.mode = value
                        x2 := &operand{mode: value, expr: e, typ: Typ[UntypedBool]}
                        if x.mode == commaerr {
                                x2.typ = universeError