]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/vet: re-quote struct tags when printing errors
authorJosh Bleecher Snyder <josharian@gmail.com>
Fri, 8 Jul 2016 14:52:02 +0000 (07:52 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Sun, 21 Aug 2016 22:47:03 +0000 (22:47 +0000)
cmd/link/link_test.go contains several multi-line
struct tags. Going through an unquote/quote cycle
converts `a
b
c` to "a\nb\nc\n".

This keeps all vet error messages for the standard
library on a single line.

Updates #11041

Change-Id: Ifba1e87297a5174294d1fbf73463fd3db357464f
Reviewed-on: https://go-review.googlesource.com/27129
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
src/cmd/vet/structtag.go

index abff14fb1d855e06348e1d8f54e66688171f68df..8134c585b33a65819781c0b3d25d2c0d54a441f5 100644 (file)
@@ -34,7 +34,8 @@ func checkCanonicalFieldTag(f *File, node ast.Node) {
        }
 
        if err := validateStructTag(tag); err != nil {
-               f.Badf(field.Pos(), "struct field tag %s not compatible with reflect.StructTag.Get: %s", field.Tag.Value, err)
+               raw, _ := strconv.Unquote(field.Tag.Value) // field.Tag.Value is known to be a quoted string
+               f.Badf(field.Pos(), "struct field tag %q not compatible with reflect.StructTag.Get: %s", raw, err)
        }
 
        // Check for use of json or xml tags with unexported fields.