mirror of
https://github.com/golang/go
synced 2024-10-02 22:25:08 +00:00
cmd/compile, go/types: omit needless word in error message
CL 21462 and CL 21463 made this message say explicitly that the problem was a struct field in a map, but the word "directly" is unnecessary, sounds wrong, and makes the error long. Change-Id: I2fb68cdaeb8bd94776b8022cf3eae751919ccf6f Reviewed-on: https://go-review.googlesource.com/23373 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: David Chase <drchase@google.com>
This commit is contained in:
parent
34b17d4dc5
commit
85e3c9e6b8
|
@ -3153,7 +3153,7 @@ func checkassign(stmt *Node, n *Node) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if n.Op == ODOT && n.Left.Op == OINDEXMAP {
|
if n.Op == ODOT && n.Left.Op == OINDEXMAP {
|
||||||
Yyerror("cannot directly assign to struct field %v in map", n)
|
Yyerror("cannot assign to struct field %v in map", n)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -183,7 +183,7 @@ func (check *Checker) assignVar(lhs ast.Expr, x *operand) Type {
|
||||||
var op operand
|
var op operand
|
||||||
check.expr(&op, sel.X)
|
check.expr(&op, sel.X)
|
||||||
if op.mode == mapindex {
|
if op.mode == mapindex {
|
||||||
check.errorf(z.pos(), "cannot directly assign to struct field %s in map", ExprString(z.expr))
|
check.errorf(z.pos(), "cannot assign to struct field %s in map", ExprString(z.expr))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
2
src/go/types/testdata/stmt0.src
vendored
2
src/go/types/testdata/stmt0.src
vendored
|
@ -137,7 +137,7 @@ func issue6487() {
|
||||||
|
|
||||||
type M map[string]S
|
type M map[string]S
|
||||||
var m M
|
var m M
|
||||||
m /* ERROR "cannot directly assign to struct field" */ ["foo"].x = 0
|
m /* ERROR "cannot assign to struct field" */ ["foo"].x = 0
|
||||||
_ = &( /* ERROR "cannot take address" */ m["foo"].x)
|
_ = &( /* ERROR "cannot take address" */ m["foo"].x)
|
||||||
_ = &m /* ERROR "cannot take address" */ ["foo"].x
|
_ = &m /* ERROR "cannot take address" */ ["foo"].x
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,5 +11,5 @@ package main
|
||||||
func main() {
|
func main() {
|
||||||
type person struct{ age, weight, height int }
|
type person struct{ age, weight, height int }
|
||||||
students := map[string]person{"sally": person{12, 50, 32}}
|
students := map[string]person{"sally": person{12, 50, 32}}
|
||||||
students["sally"].age = 3 // ERROR "cannot directly assign to struct field .* in map"
|
students["sally"].age = 3 // ERROR "cannot assign to struct field .* in map"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue