protogen: conflict resolve local package names against predefined idents
Avoid importing packages with a local name that conflicts with a predefined
identifier (e.g., "string").
Change-Id: I51164635351895e8a060355e59d718240e26ef2e
Reviewed-on: https://go-review.googlesource.com/c/140178
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
diff --git a/protogen/protogen_test.go b/protogen/protogen_test.go
index 6d8e5af..35f1899 100644
--- a/protogen/protogen_test.go
+++ b/protogen/protogen_test.go
@@ -272,6 +272,8 @@
// Reference to a different package with the same basename.
"golang.org/y/bar",
"golang.org/x/baz",
+ // Reference to a package conflicting with a predeclared identifier.
+ "golang.org/z/string",
} {
g.P("var _ = ", GoIdent{GoName: "X", GoImportPath: importPath}, " // ", importPath)
}
@@ -281,13 +283,15 @@
bar "golang.org/x/bar"
baz "golang.org/x/baz"
bar1 "golang.org/y/bar"
+ string1 "golang.org/z/string"
)
-var _ = X // "golang.org/x/foo"
-var _ = bar.X // "golang.org/x/bar"
-var _ = bar.X // "golang.org/x/bar"
-var _ = bar1.X // "golang.org/y/bar"
-var _ = baz.X // "golang.org/x/baz"
+var _ = X // "golang.org/x/foo"
+var _ = bar.X // "golang.org/x/bar"
+var _ = bar.X // "golang.org/x/bar"
+var _ = bar1.X // "golang.org/y/bar"
+var _ = baz.X // "golang.org/x/baz"
+var _ = string1.X // "golang.org/z/string"
`
got, err := g.Content()
if err != nil {