bind: add missing unsafe import in generated code

The ClassGen.genGo function always uses unsafe, contrary to what
the check in GenGo says. With this CL, generated code always
imports unsafe if there are any classes to be generated.

Change-Id: Ic807111a26e494b4941790830b1950bb8b1f73d5
Reviewed-on: https://go-review.googlesource.com/29873
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
diff --git a/bind/genclasses.go b/bind/genclasses.go
index 1b797c3..0de3f23 100644
--- a/bind/genclasses.go
+++ b/bind/genclasses.go
@@ -162,18 +162,16 @@
 
 func (g *ClassGen) GenGo() {
 	g.Printf(classesGoHeader)
-	impUnsafe := false
 	for _, cls := range g.classes {
 		for _, f := range cls.Funcs {
 			if f.Public && g.isFuncSupported(f) {
-				impUnsafe = true
 				pkgName := strings.Replace(cls.Name, ".", "/", -1)
 				g.Printf("import %q\n", "Java/"+pkgName)
 				break
 			}
 		}
 	}
-	if impUnsafe {
+	if len(g.classes) > 0 {
 		g.Printf("import \"unsafe\"\n\n")
 	}
 	g.Printf("type proxy interface { Bind_proxy_refnum__() int32 }\n\n")
diff --git a/bind/testdata/classes.go.golden b/bind/testdata/classes.go.golden
index d912b50..d769639 100644
--- a/bind/testdata/classes.go.golden
+++ b/bind/testdata/classes.go.golden
@@ -44,6 +44,8 @@
 	_seq "golang.org/x/mobile/bind/seq"
 )
 
+import "unsafe"
+
 type proxy interface { Bind_proxy_refnum__() int32 }
 
 // Suppress unused package error
diff --git a/bind/testdata/java.go.golden b/bind/testdata/java.go.golden
index e7914ea..43e67c2 100644
--- a/bind/testdata/java.go.golden
+++ b/bind/testdata/java.go.golden
@@ -39,6 +39,8 @@
 	_seq "golang.org/x/mobile/bind/seq"
 )
 
+import "unsafe"
+
 type proxy interface { Bind_proxy_refnum__() int32 }
 
 // Suppress unused package error