goprotobuf: Explicitly type the generated enum constants.

R=r
CC=golang-dev
http://codereview.appspot.com/4952045
diff --git a/compiler/generator/generator.go b/compiler/generator/generator.go
index 760c5bf..34d3ad2 100644
--- a/compiler/generator/generator.go
+++ b/compiler/generator/generator.go
@@ -289,7 +289,7 @@
 	g.P("type ", s, " ", pkg, ".", s)
 	g.P("var ", s, "_name = ", pkg, ".", s, "_name")
 	g.P("var ", s, "_value = ", pkg, ".", s, "_value")
-	g.P("func New", s, "(x int32) *", s, " { e := ", s, "(x); return &e }")
+	g.P("func New", s, "(x ", s, ") *", s, " { e := ", s, "(x); return &e }")
 }
 
 type constOrVarSymbol struct {
@@ -893,7 +893,7 @@
 	g.In()
 	for _, e := range enum.Value {
 		name := ccPrefix + *e.Name
-		g.P(name, " = ", e.Number)
+		g.P(name, " ", ccTypeName, " = ", e.Number)
 		g.file.addExport(enum, constOrVarSymbol{name, "const"})
 	}
 	g.Out()
@@ -919,7 +919,7 @@
 	g.Out()
 	g.P("}")
 
-	g.P("func New", ccTypeName, "(x int32) *", ccTypeName, " {")
+	g.P("func New", ccTypeName, "(x ", ccTypeName, ") *", ccTypeName, " {")
 	g.In()
 	g.P("e := ", ccTypeName, "(x)")
 	g.P("return &e")