diff --git a/go/analysis/passes/structtag/structtag.go b/go/analysis/passes/structtag/structtag.go index 2b67c376..5b27208e 100644 --- a/go/analysis/passes/structtag/structtag.go +++ b/go/analysis/passes/structtag/structtag.go @@ -96,6 +96,11 @@ func checkTagDuplicates(pass *analysis.Pass, tag, key string, nearest, field *ty } if val == "" || val[0] == ',' { 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) if !ok { return diff --git a/go/analysis/passes/structtag/testdata/src/a/a.go b/go/analysis/passes/structtag/testdata/src/a/a.go index abb67fe4..0078626d 100644 --- a/go/analysis/passes/structtag/testdata/src/a/a.go +++ b/go/analysis/passes/structtag/testdata/src/a/a.go @@ -75,7 +75,7 @@ type DuplicateJSONFields struct { } 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"` 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 // "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"` }