improve error message for duplicate oneof in text parsing
PiperOrigin-RevId: 138128520
diff --git a/proto/text_parser.go b/proto/text_parser.go
index a6bab2f..61f83c1 100644
--- a/proto/text_parser.go
+++ b/proto/text_parser.go
@@ -594,7 +594,7 @@
dst = nv.Elem().Field(0)
field := sv.Field(oop.Field)
if !field.IsNil() {
- return p.errorf("oneof field '%s' is already set", name)
+ return p.errorf("field '%s' would overwrite already parsed oneof '%s'", name, sv.Type().Field(oop.Field).Name)
}
field.Set(nv)
}
diff --git a/proto/text_parser_test.go b/proto/text_parser_test.go
index d757ab3..8f7cb4d 100644
--- a/proto/text_parser_test.go
+++ b/proto/text_parser_test.go
@@ -638,7 +638,7 @@
const inOverwrite = `name:"Shrek" number:42`
m = new(Communique)
- testErr := "line 1.13: oneof field 'number' is already set"
+ testErr := "line 1.13: field 'number' would overwrite already parsed oneof 'Union'"
if err := UnmarshalText(inOverwrite, m); err == nil {
t.Errorf("TestOneofParsing: Didn't get expected error: %v", testErr)
} else if err.Error() != testErr {
diff --git a/protoc-gen-go/generator/generator.go b/protoc-gen-go/generator/generator.go
index 4d7d19b..0e5d2b7 100644
--- a/protoc-gen-go/generator/generator.go
+++ b/protoc-gen-go/generator/generator.go
@@ -626,7 +626,6 @@
}
}
}
-
if pluginList != "" {
// Amend the set of plugins.
enabled := make(map[string]bool)
@@ -1181,7 +1180,6 @@
g.P("const _ = ", g.Pkg["proto"], ".ProtoPackageIsVersion", generatedCodeVersion, " // please upgrade the proto package")
g.P()
}
-
for _, td := range g.file.imp {
g.generateImported(td)
}