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 {