aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2023-04-18 19:20:28 -0700
committerGopher Robot <gobot@golang.org>2023-04-19 14:06:32 +0000
commit522eace4ca496626bcb3b65f9dcb6e8db2673fed (patch)
treea4a04d72bf7ddc0dfd342e2318d28a56d6900190 /src
parent969ab34e4629bdda410c8468d4f45a08e4fec9f8 (diff)
downloadgo-522eace4ca496626bcb3b65f9dcb6e8db2673fed.tar.xz
go/types, types2: be deliberate with Checker.use in Checker.assignVar
Follow-up on comment in CL 486135. Cleanup. Change-Id: Ib0480d52e30687350f8328965c18fa83262df0a3 Reviewed-on: https://go-review.googlesource.com/c/go/+/486215 Run-TryBot: Robert Griesemer <gri@google.com> Auto-Submit: Robert Griesemer <gri@google.com> Reviewed-by: Robert Griesemer <gri@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Robert Findley <rfindley@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/cmd/compile/internal/types2/assignments.go3
-rw-r--r--src/go/types/assignments.go3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/cmd/compile/internal/types2/assignments.go b/src/cmd/compile/internal/types2/assignments.go
index 59f29b8f62..15d2a89934 100644
--- a/src/cmd/compile/internal/types2/assignments.go
+++ b/src/cmd/compile/internal/types2/assignments.go
@@ -235,9 +235,10 @@ func (check *Checker) lhsVar(lhs syntax.Expr) Type {
func (check *Checker) assignVar(lhs, rhs syntax.Expr, x *operand) {
T := check.lhsVar(lhs) // nil if lhs is _
if T == Typ[Invalid] {
- check.use(rhs)
if x != nil {
x.mode = invalid
+ } else {
+ check.use(rhs)
}
return
}
diff --git a/src/go/types/assignments.go b/src/go/types/assignments.go
index f036142caa..b0d11dfb82 100644
--- a/src/go/types/assignments.go
+++ b/src/go/types/assignments.go
@@ -234,9 +234,10 @@ func (check *Checker) lhsVar(lhs ast.Expr) Type {
func (check *Checker) assignVar(lhs, rhs ast.Expr, x *operand) {
T := check.lhsVar(lhs) // nil if lhs is _
if T == Typ[Invalid] {
- check.use(rhs)
if x != nil {
x.mode = invalid
+ } else {
+ check.use(rhs)
}
return
}