mirror of
https://github.com/golang/go
synced 2024-09-05 16:04:50 +00:00
cmd/compile: silence superfluous assignment error message
Avoid printing a second error message when a field of an undefined variable is accessed. Fixes #8440. Change-Id: I3fe0b11fa3423cec3871cb01b5951efa8ea7451a Reviewed-on: https://go-review.googlesource.com/36751 Reviewed-by: Matthew Dempsky <mdempsky@google.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
b788fd80e6
commit
d55f528826
|
@ -3213,8 +3213,8 @@ func checkassign(stmt *Node, n *Node) {
|
|||
return
|
||||
}
|
||||
|
||||
// have already complained about n being undefined
|
||||
if n.Op == ONONAME {
|
||||
// have already complained about n being invalid
|
||||
if n.Type == nil {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -11,5 +11,5 @@ package main
|
|||
|
||||
func main() {
|
||||
true = false // ERROR "cannot assign to true"
|
||||
byte = 0 // ERROR "not an expression" "cannot assign to byte"
|
||||
byte = 0 // ERROR "not an expression"
|
||||
}
|
||||
|
|
11
test/fixedbugs/issue8440.go
Normal file
11
test/fixedbugs/issue8440.go
Normal file
|
@ -0,0 +1,11 @@
|
|||
// errorcheck
|
||||
|
||||
// Copyright 2017 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package main
|
||||
|
||||
func main() {
|
||||
n.foo = 6 // ERROR "undefined: n in n.foo"
|
||||
}
|
Loading…
Reference in a new issue