mirror of
https://github.com/golang/go
synced 2024-11-02 11:50:30 +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
3 changed files with 14 additions and 3 deletions
|
@ -3213,8 +3213,8 @@ func checkassign(stmt *Node, n *Node) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// have already complained about n being undefined
|
// have already complained about n being invalid
|
||||||
if n.Op == ONONAME {
|
if n.Type == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,5 +11,5 @@ package main
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
true = false // ERROR "cannot assign to true"
|
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