mirror of https://github.com/golang/go.git
cmd/compile/internal/gc: reword "declared and not used" error message
"declared and not used" is technically correct, but might confuse the user. Switching "and" to "but" will hopefully create the contrast for the users: they did one thing (declaration), but not the other --- actually using the variable. This new message is still not ideal (specifically, declared is not entirely precise here), but at least it matches the other parsers and is one step in the right direction. Change-Id: I725c7c663535f9ab9725c4b0bf35b4fa74b0eb20 Reviewed-on: https://go-review.googlesource.com/c/go/+/203282 Run-TryBot: Minux Ma <minux@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
parent
bf670bd83c
commit
449b6abbac
|
|
@ -32,7 +32,7 @@ func typecheckTypeSwitch(n *Node) {
|
||||||
// declaration itself. So if there are no cases, we won't
|
// declaration itself. So if there are no cases, we won't
|
||||||
// notice that it went unused.
|
// notice that it went unused.
|
||||||
if v := n.Left.Left; v != nil && !v.isBlank() && n.List.Len() == 0 {
|
if v := n.Left.Left; v != nil && !v.isBlank() && n.List.Len() == 0 {
|
||||||
yyerrorl(v.Pos, "%v declared and not used", v.Sym)
|
yyerrorl(v.Pos, "%v declared but not used", v.Sym)
|
||||||
}
|
}
|
||||||
|
|
||||||
var defCase, nilCase *Node
|
var defCase, nilCase *Node
|
||||||
|
|
|
||||||
|
|
@ -50,10 +50,10 @@ func walk(fn *Node) {
|
||||||
if defn.Left.Name.Used() {
|
if defn.Left.Name.Used() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
yyerrorl(defn.Left.Pos, "%v declared and not used", ln.Sym)
|
yyerrorl(defn.Left.Pos, "%v declared but not used", ln.Sym)
|
||||||
defn.Left.Name.SetUsed(true) // suppress repeats
|
defn.Left.Name.SetUsed(true) // suppress repeats
|
||||||
} else {
|
} else {
|
||||||
yyerrorl(ln.Pos, "%v declared and not used", ln.Sym)
|
yyerrorl(ln.Pos, "%v declared but not used", ln.Sym)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
package foo
|
package foo
|
||||||
|
|
||||||
func f(x interface{}) {
|
func f(x interface{}) {
|
||||||
switch t := x.(type) { // ERROR "declared and not used"
|
switch t := x.(type) { // ERROR "declared but not used"
|
||||||
case int:
|
case int:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -48,8 +48,8 @@ func main() {
|
||||||
log.Fatalf("expected cmd/compile to fail")
|
log.Fatalf("expected cmd/compile to fail")
|
||||||
}
|
}
|
||||||
wantErrs := []string{
|
wantErrs := []string{
|
||||||
"7:9: n declared and not used",
|
"7:9: n declared but not used",
|
||||||
"7:12: err declared and not used",
|
"7:12: err declared but not used",
|
||||||
}
|
}
|
||||||
outStr := string(out)
|
outStr := string(out)
|
||||||
for _, want := range wantErrs {
|
for _, want := range wantErrs {
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,6 @@ func f(x interface{}) {
|
||||||
switch x.(type) {
|
switch x.(type) {
|
||||||
}
|
}
|
||||||
|
|
||||||
switch t := x.(type) { // ERROR "declared and not used"
|
switch t := x.(type) { // ERROR "declared but not used"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,5 +10,5 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
func _() {
|
func _() {
|
||||||
x := 7 // ERROR "x declared and not used"
|
x := 7 // ERROR "x declared but not used"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,9 @@ package main
|
||||||
|
|
||||||
func notused(x interface{}) {
|
func notused(x interface{}) {
|
||||||
// The first t is in a different scope than the 2nd t; it cannot
|
// The first t is in a different scope than the 2nd t; it cannot
|
||||||
// be accessed (=> declared and not used error); but it is legal
|
// be accessed (=> declared but not used error); but it is legal
|
||||||
// to declare it.
|
// to declare it.
|
||||||
switch t := 0; t := x.(type) { // ERROR "declared and not used"
|
switch t := 0; t := x.(type) { // ERROR "declared but not used"
|
||||||
case int:
|
case int:
|
||||||
_ = t // this is using the t of "t := x.(type)"
|
_ = t // this is using the t of "t := x.(type)"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue