mirror of
https://github.com/golang/go
synced 2024-10-14 20:05:36 +00:00
cmd/gc: do not display ~b identifiers in error messages
Instead of errors like: ./blank2.go:15: cannot use ~b1 (type []int) as type int in assignment we now have: ./blank2.go:15: cannot use _ (type []int) as type int in assignment Less confusing for users. Fixes #9521 Change-Id: Ieab9859040e8e0df95deeaee7eeb408d3be61c0f Reviewed-on: https://go-review.googlesource.com/9902 Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
3475ec7f36
commit
7c0db1b7e2
|
@ -1127,7 +1127,7 @@ func exprfmt(n *Node, prec int) string {
|
|||
// Special case: name used as local variable in export.
|
||||
// _ becomes ~b%d internally; print as _ for export
|
||||
case ONAME:
|
||||
if fmtmode == FExp && n.Sym != nil && n.Sym.Name[0] == '~' && n.Sym.Name[1] == 'b' {
|
||||
if (fmtmode == FExp || fmtmode == FErr) && n.Sym != nil && n.Sym.Name[0] == '~' && n.Sym.Name[1] == 'b' {
|
||||
return "_"
|
||||
}
|
||||
if fmtmode == FExp && n.Sym != nil && !isblank(n) && n.Vargen > 0 {
|
||||
|
|
16
test/fixedbugs/issue9521.go
Normal file
16
test/fixedbugs/issue9521.go
Normal file
|
@ -0,0 +1,16 @@
|
|||
// errorcheck
|
||||
|
||||
// Copyright 2015 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.
|
||||
|
||||
// Test that an incorrect use of the blank identifer is caught.
|
||||
// Does not compile.
|
||||
|
||||
package main
|
||||
|
||||
func f() (_, _ []int) { return }
|
||||
|
||||
func main() {
|
||||
_ = append(f()) // ERROR "cannot use _"
|
||||
}
|
Loading…
Reference in a new issue