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 }