mirror of
https://github.com/golang/go
synced 2024-11-14 14:10:29 -07:00
5f29a7a705
Improve the error message for wrong case-field names in composite literals, by mentioning the correct field name. Given the program: package main type it struct { ID string } func main() { i1 := &it{id: "Bar"} } just like we do for usage of fields, we now report wrongly cased fields as hints to give: ts.go:8:14: unknown field 'id' in struct literal of type it (but does have ID) instead of before: ts.go:8:14: unknown field 'id' in struct literal of type it Fixes #22794 Change-Id: I18cd70e75817025cb1df083503cae306e8d659fd Reviewed-on: https://go-review.googlesource.com/78545 Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
21 lines
484 B
Go
21 lines
484 B
Go
// 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
|
|
|
|
type it struct {
|
|
Floats bool
|
|
inner string
|
|
}
|
|
|
|
func main() {
|
|
i1 := it{Floats: true}
|
|
if i1.floats { // ERROR "(type it .* field or method floats, but does have Floats)"
|
|
}
|
|
i2 := &it{floats: false} // ERROR "(but does have Floats)"
|
|
_ = &it{InneR: "foo"} // ERROR "(but does have inner)"
|
|
}
|