[release-branch.go1.12] go/analysis: disable embedded struct tag check
This disables the enhancement added in golang.org/cl/115677. The original change was done in the old cmd/vet location, so it would be non-trivial to port a full revert of all the code changes. Simply skipping anonymous struct fields is a simpler way to undo the effects of the CL. The reason we want to disable this enhancement of the check in the Go 1.12 release branch is because a false positive was uncovered, which we want fixed for Go 1.12.1. It's possible that the check will instead be tweaked for 1.13, but for 1.12.1 we want to play it safe. Updates golang/go#30465. Change-Id: I379b4547a560723b8023dad45ab26556b10ee308 Reviewed-on: https://go-review.googlesource.com/c/tools/+/164659 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
86c5873b48
commit
aa82965741
|
@ -96,6 +96,11 @@ func checkTagDuplicates(pass *analysis.Pass, tag, key string, nearest, field *ty
|
||||||
}
|
}
|
||||||
if val == "" || val[0] == ',' {
|
if val == "" || val[0] == ',' {
|
||||||
if field.Anonymous() {
|
if field.Anonymous() {
|
||||||
|
// Disable this check enhancement in Go 1.12.1; some
|
||||||
|
// false positives were spotted in the initial 1.12
|
||||||
|
// release. See https://golang.org/issues/30465.
|
||||||
|
return
|
||||||
|
|
||||||
typ, ok := field.Type().Underlying().(*types.Struct)
|
typ, ok := field.Type().Underlying().(*types.Struct)
|
||||||
if !ok {
|
if !ok {
|
||||||
return
|
return
|
||||||
|
|
|
@ -75,7 +75,7 @@ type DuplicateJSONFields struct {
|
||||||
}
|
}
|
||||||
AnonymousJSON `json:"a"` // want "struct field AnonymousJSON repeats json tag .a. also at a.go:64"
|
AnonymousJSON `json:"a"` // want "struct field AnonymousJSON repeats json tag .a. also at a.go:64"
|
||||||
|
|
||||||
AnonymousJSONField // want "struct field DuplicateAnonJSON repeats json tag .a. also at a.go:64"
|
AnonymousJSONField
|
||||||
|
|
||||||
XML int `xml:"a"`
|
XML int `xml:"a"`
|
||||||
DuplicateXML int `xml:"a"` // want "struct field DuplicateXML repeats xml tag .a. also at a.go:80"
|
DuplicateXML int `xml:"a"` // want "struct field DuplicateXML repeats xml tag .a. also at a.go:80"
|
||||||
|
@ -129,5 +129,5 @@ type DuplicateWithAnotherPackage struct {
|
||||||
|
|
||||||
// The "also at" position is in a different package and directory. Use
|
// The "also at" position is in a different package and directory. Use
|
||||||
// "b.b" instead of "b/b" to match the relative path on Windows easily.
|
// "b.b" instead of "b/b" to match the relative path on Windows easily.
|
||||||
DuplicateJSON int `json:"a"` // want "struct field DuplicateJSON repeats json tag .a. also at b.b.go:8"
|
DuplicateJSON int `json:"a"`
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue