bind: make generated names less go-like to avoid name collision.

Change-Id: Ib3f27ceb38ae0d2416e8aef6f3ffe81c7f6c9044
Reviewed-on: https://go-review.googlesource.com/10550
Reviewed-by: David Crawshaw <crawshaw@golang.org>
diff --git a/bind/gengo.go b/bind/gengo.go
index 67c9743..673c743 100644
--- a/bind/gengo.go
+++ b/bind/gengo.go
@@ -168,13 +168,13 @@
 
 	g.Printf("const (\n")
 	g.Indent()
-	g.Printf("proxy%sDescriptor = \"go.%s.%s\"\n", obj.Name(), g.pkg.Name(), obj.Name())
+	g.Printf("proxy%s_Descriptor = \"go.%s.%s\"\n", obj.Name(), g.pkg.Name(), obj.Name())
 	for i, f := range fields {
-		g.Printf("proxy%s%sGetCode = 0x%x0f\n", obj.Name(), f.Name(), i)
-		g.Printf("proxy%s%sSetCode = 0x%x1f\n", obj.Name(), f.Name(), i)
+		g.Printf("proxy%s_%s_Get_Code = 0x%x0f\n", obj.Name(), f.Name(), i)
+		g.Printf("proxy%s_%s_Set_Code = 0x%x1f\n", obj.Name(), f.Name(), i)
 	}
 	for i, m := range methods {
-		g.Printf("proxy%s%sCode = 0x%x0c\n", obj.Name(), m.Name(), i)
+		g.Printf("proxy%s_%s_Code = 0x%x0c\n", obj.Name(), m.Name(), i)
 	}
 	g.Outdent()
 	g.Printf(")\n\n")
@@ -184,7 +184,7 @@
 	for _, f := range fields {
 		seqTyp := seqType(f.Type())
 
-		g.Printf("func proxy%s%sSet(out, in *seq.Buffer) {\n", obj.Name(), f.Name())
+		g.Printf("func proxy%s_%s_Set(out, in *seq.Buffer) {\n", obj.Name(), f.Name())
 		g.Indent()
 		g.Printf("ref := in.ReadRef()\n")
 		g.Printf("v := in.Read%s()\n", seqTyp)
@@ -197,7 +197,7 @@
 		g.Outdent()
 		g.Printf("}\n\n")
 
-		g.Printf("func proxy%s%sGet(out, in *seq.Buffer) {\n", obj.Name(), f.Name())
+		g.Printf("func proxy%s_%s_Get(out, in *seq.Buffer) {\n", obj.Name(), f.Name())
 		g.Indent()
 		g.Printf("ref := in.ReadRef()\n")
 		g.Printf("v := ref.Get().(*%s.%s).%s\n", g.pkg.Name(), obj.Name(), f.Name())
@@ -211,7 +211,7 @@
 	}
 
 	for _, m := range methods {
-		g.Printf("func proxy%s%s(out, in *seq.Buffer) {\n", obj.Name(), m.Name())
+		g.Printf("func proxy%s_%s(out, in *seq.Buffer) {\n", obj.Name(), m.Name())
 		g.Indent()
 		g.Printf("ref := in.ReadRef()\n")
 		g.Printf("v := ref.Get().(*%s.%s)\n", g.pkg.Name(), obj.Name())
@@ -224,12 +224,12 @@
 	g.Indent()
 	for _, f := range fields {
 		n := f.Name()
-		g.Printf("seq.Register(proxy%sDescriptor, proxy%s%sSetCode, proxy%s%sSet)\n", obj.Name(), obj.Name(), n, obj.Name(), n)
-		g.Printf("seq.Register(proxy%sDescriptor, proxy%s%sGetCode, proxy%s%sGet)\n", obj.Name(), obj.Name(), n, obj.Name(), n)
+		g.Printf("seq.Register(proxy%s_Descriptor, proxy%s_%s_Set_Code, proxy%s_%s_Set)\n", obj.Name(), obj.Name(), n, obj.Name(), n)
+		g.Printf("seq.Register(proxy%s_Descriptor, proxy%s_%s_Get_Code, proxy%s_%s_Get)\n", obj.Name(), obj.Name(), n, obj.Name(), n)
 	}
 	for _, m := range methods {
 		n := m.Name()
-		g.Printf("seq.Register(proxy%sDescriptor, proxy%s%sCode, proxy%s%s)\n", obj.Name(), obj.Name(), n, obj.Name(), n)
+		g.Printf("seq.Register(proxy%s_Descriptor, proxy%s_%s_Code, proxy%s_%s)\n", obj.Name(), obj.Name(), n, obj.Name(), n)
 	}
 	g.Outdent()
 	g.Printf("}\n\n")
@@ -241,9 +241,9 @@
 	// Descriptor and code for interface methods.
 	g.Printf("const (\n")
 	g.Indent()
-	g.Printf("proxy%sDescriptor = \"go.%s.%s\"\n", obj.Name(), g.pkg.Name(), obj.Name())
+	g.Printf("proxy%s_Descriptor = \"go.%s.%s\"\n", obj.Name(), g.pkg.Name(), obj.Name())
 	for i := 0; i < iface.NumMethods(); i++ {
-		g.Printf("proxy%s%sCode = 0x%x0a\n", obj.Name(), iface.Method(i).Name(), i+1)
+		g.Printf("proxy%s_%s_Code = 0x%x0a\n", obj.Name(), iface.Method(i).Name(), i+1)
 	}
 	g.Outdent()
 	g.Printf(")\n\n")
@@ -251,7 +251,7 @@
 	// Define the entry points.
 	for i := 0; i < iface.NumMethods(); i++ {
 		m := iface.Method(i)
-		g.Printf("func proxy%s%s(out, in *seq.Buffer) {\n", obj.Name(), m.Name())
+		g.Printf("func proxy%s_%s(out, in *seq.Buffer) {\n", obj.Name(), m.Name())
 		g.Indent()
 		g.Printf("ref := in.ReadRef()\n")
 		g.Printf("v := ref.Get().(%s.%s)\n", g.pkg.Name(), obj.Name())
@@ -264,7 +264,7 @@
 	g.Printf("func init() {\n")
 	g.Indent()
 	for i := 0; i < iface.NumMethods(); i++ {
-		g.Printf("seq.Register(proxy%sDescriptor, proxy%s%sCode, proxy%s%s)\n",
+		g.Printf("seq.Register(proxy%s_Descriptor, proxy%s_%s_Code, proxy%s_%s)\n",
 			obj.Name(), obj.Name(), iface.Method(i).Name(), obj.Name(), iface.Method(i).Name())
 	}
 	g.Outdent()
@@ -308,9 +308,9 @@
 		}
 
 		if res.Len() == 0 {
-			g.Printf("seq.Transact((*seq.Ref)(p), proxy%s%sCode, in)\n", obj.Name(), m.Name())
+			g.Printf("seq.Transact((*seq.Ref)(p), proxy%s_%s_Code, in)\n", obj.Name(), m.Name())
 		} else {
-			g.Printf("out := seq.Transact((*seq.Ref)(p), proxy%s%sCode, in)\n", obj.Name(), m.Name())
+			g.Printf("out := seq.Transact((*seq.Ref)(p), proxy%s_%s_Code, in)\n", obj.Name(), m.Name())
 			var rvs []string
 			for i := 0; i < res.Len(); i++ {
 				rv := fmt.Sprintf("res_%d", i)
diff --git a/bind/testdata/interfaces.go.golden b/bind/testdata/interfaces.go.golden
index f2edf8c..6bb1050 100644
--- a/bind/testdata/interfaces.go.golden
+++ b/bind/testdata/interfaces.go.golden
@@ -22,11 +22,11 @@
 }
 
 const (
-	proxyIDescriptor = "go.interfaces.I"
-	proxyIRandCode   = 0x10a
+	proxyI_Descriptor = "go.interfaces.I"
+	proxyI_Rand_Code  = 0x10a
 )
 
-func proxyIRand(out, in *seq.Buffer) {
+func proxyI_Rand(out, in *seq.Buffer) {
 	ref := in.ReadRef()
 	v := ref.Get().(interfaces.I)
 	res := v.Rand()
@@ -34,14 +34,14 @@
 }
 
 func init() {
-	seq.Register(proxyIDescriptor, proxyIRandCode, proxyIRand)
+	seq.Register(proxyI_Descriptor, proxyI_Rand_Code, proxyI_Rand)
 }
 
 type proxyI seq.Ref
 
 func (p *proxyI) Rand() int32 {
 	in := new(seq.Buffer)
-	out := seq.Transact((*seq.Ref)(p), proxyIRandCode, in)
+	out := seq.Transact((*seq.Ref)(p), proxyI_Rand_Code, in)
 	res_0 := out.ReadInt32()
 	return res_0
 }
diff --git a/bind/testdata/issue10788.go.golden b/bind/testdata/issue10788.go.golden
index d258675..9b96e23 100644
--- a/bind/testdata/issue10788.go.golden
+++ b/bind/testdata/issue10788.go.golden
@@ -10,12 +10,12 @@
 )
 
 const (
-	proxyTestInterfaceDescriptor                = "go.issue10788.TestInterface"
-	proxyTestInterfaceDoSomeWorkCode            = 0x10a
-	proxyTestInterfaceMultipleUnnamedParamsCode = 0x20a
+	proxyTestInterface_Descriptor                 = "go.issue10788.TestInterface"
+	proxyTestInterface_DoSomeWork_Code            = 0x10a
+	proxyTestInterface_MultipleUnnamedParams_Code = 0x20a
 )
 
-func proxyTestInterfaceDoSomeWork(out, in *seq.Buffer) {
+func proxyTestInterface_DoSomeWork(out, in *seq.Buffer) {
 	ref := in.ReadRef()
 	v := ref.Get().(issue10788.TestInterface)
 	// Must be a Go object
@@ -24,7 +24,7 @@
 	v.DoSomeWork(param_s)
 }
 
-func proxyTestInterfaceMultipleUnnamedParams(out, in *seq.Buffer) {
+func proxyTestInterface_MultipleUnnamedParams(out, in *seq.Buffer) {
 	ref := in.ReadRef()
 	v := ref.Get().(issue10788.TestInterface)
 	param_p0 := in.ReadInt()
@@ -34,8 +34,8 @@
 }
 
 func init() {
-	seq.Register(proxyTestInterfaceDescriptor, proxyTestInterfaceDoSomeWorkCode, proxyTestInterfaceDoSomeWork)
-	seq.Register(proxyTestInterfaceDescriptor, proxyTestInterfaceMultipleUnnamedParamsCode, proxyTestInterfaceMultipleUnnamedParams)
+	seq.Register(proxyTestInterface_Descriptor, proxyTestInterface_DoSomeWork_Code, proxyTestInterface_DoSomeWork)
+	seq.Register(proxyTestInterface_Descriptor, proxyTestInterface_MultipleUnnamedParams_Code, proxyTestInterface_MultipleUnnamedParams)
 }
 
 type proxyTestInterface seq.Ref
@@ -43,7 +43,7 @@
 func (p *proxyTestInterface) DoSomeWork(s *issue10788.TestStruct) {
 	in := new(seq.Buffer)
 	in.WriteGoRef(s)
-	seq.Transact((*seq.Ref)(p), proxyTestInterfaceDoSomeWorkCode, in)
+	seq.Transact((*seq.Ref)(p), proxyTestInterface_DoSomeWork_Code, in)
 }
 
 func (p *proxyTestInterface) MultipleUnnamedParams(p0 int, p1 string, p2 int64) {
@@ -51,32 +51,32 @@
 	in.WriteInt(p0)
 	in.WriteString(p1)
 	in.WriteInt64(p2)
-	seq.Transact((*seq.Ref)(p), proxyTestInterfaceMultipleUnnamedParamsCode, in)
+	seq.Transact((*seq.Ref)(p), proxyTestInterface_MultipleUnnamedParams_Code, in)
 }
 
 const (
-	proxyTestStructDescriptor   = "go.issue10788.TestStruct"
-	proxyTestStructValueGetCode = 0x00f
-	proxyTestStructValueSetCode = 0x01f
+	proxyTestStruct_Descriptor     = "go.issue10788.TestStruct"
+	proxyTestStruct_Value_Get_Code = 0x00f
+	proxyTestStruct_Value_Set_Code = 0x01f
 )
 
 type proxyTestStruct seq.Ref
 
-func proxyTestStructValueSet(out, in *seq.Buffer) {
+func proxyTestStruct_Value_Set(out, in *seq.Buffer) {
 	ref := in.ReadRef()
 	v := in.ReadString()
 	ref.Get().(*issue10788.TestStruct).Value = v
 }
 
-func proxyTestStructValueGet(out, in *seq.Buffer) {
+func proxyTestStruct_Value_Get(out, in *seq.Buffer) {
 	ref := in.ReadRef()
 	v := ref.Get().(*issue10788.TestStruct).Value
 	out.WriteString(v)
 }
 
 func init() {
-	seq.Register(proxyTestStructDescriptor, proxyTestStructValueSetCode, proxyTestStructValueSet)
-	seq.Register(proxyTestStructDescriptor, proxyTestStructValueGetCode, proxyTestStructValueGet)
+	seq.Register(proxyTestStruct_Descriptor, proxyTestStruct_Value_Set_Code, proxyTestStruct_Value_Set)
+	seq.Register(proxyTestStruct_Descriptor, proxyTestStruct_Value_Get_Code, proxyTestStruct_Value_Get)
 }
 
 func init() {
diff --git a/bind/testdata/structs.go.golden b/bind/testdata/structs.go.golden
index b32ec0d..1f79275 100644
--- a/bind/testdata/structs.go.golden
+++ b/bind/testdata/structs.go.golden
@@ -10,41 +10,41 @@
 )
 
 const (
-	proxySDescriptor = "go.structs.S"
-	proxySXGetCode   = 0x00f
-	proxySXSetCode   = 0x01f
-	proxySYGetCode   = 0x10f
-	proxySYSetCode   = 0x11f
-	proxySSumCode    = 0x00c
+	proxyS_Descriptor = "go.structs.S"
+	proxyS_X_Get_Code = 0x00f
+	proxyS_X_Set_Code = 0x01f
+	proxyS_Y_Get_Code = 0x10f
+	proxyS_Y_Set_Code = 0x11f
+	proxyS_Sum_Code   = 0x00c
 )
 
 type proxyS seq.Ref
 
-func proxySXSet(out, in *seq.Buffer) {
+func proxyS_X_Set(out, in *seq.Buffer) {
 	ref := in.ReadRef()
 	v := in.ReadFloat64()
 	ref.Get().(*structs.S).X = v
 }
 
-func proxySXGet(out, in *seq.Buffer) {
+func proxyS_X_Get(out, in *seq.Buffer) {
 	ref := in.ReadRef()
 	v := ref.Get().(*structs.S).X
 	out.WriteFloat64(v)
 }
 
-func proxySYSet(out, in *seq.Buffer) {
+func proxyS_Y_Set(out, in *seq.Buffer) {
 	ref := in.ReadRef()
 	v := in.ReadFloat64()
 	ref.Get().(*structs.S).Y = v
 }
 
-func proxySYGet(out, in *seq.Buffer) {
+func proxyS_Y_Get(out, in *seq.Buffer) {
 	ref := in.ReadRef()
 	v := ref.Get().(*structs.S).Y
 	out.WriteFloat64(v)
 }
 
-func proxySSum(out, in *seq.Buffer) {
+func proxyS_Sum(out, in *seq.Buffer) {
 	ref := in.ReadRef()
 	v := ref.Get().(*structs.S)
 	res := v.Sum()
@@ -52,11 +52,11 @@
 }
 
 func init() {
-	seq.Register(proxySDescriptor, proxySXSetCode, proxySXSet)
-	seq.Register(proxySDescriptor, proxySXGetCode, proxySXGet)
-	seq.Register(proxySDescriptor, proxySYSetCode, proxySYSet)
-	seq.Register(proxySDescriptor, proxySYGetCode, proxySYGet)
-	seq.Register(proxySDescriptor, proxySSumCode, proxySSum)
+	seq.Register(proxyS_Descriptor, proxyS_X_Set_Code, proxyS_X_Set)
+	seq.Register(proxyS_Descriptor, proxyS_X_Get_Code, proxyS_X_Get)
+	seq.Register(proxyS_Descriptor, proxyS_Y_Set_Code, proxyS_Y_Set)
+	seq.Register(proxyS_Descriptor, proxyS_Y_Get_Code, proxyS_Y_Get)
+	seq.Register(proxyS_Descriptor, proxyS_Sum_Code, proxyS_Sum)
 }
 
 func init() {