internal/proto: use ParentFile instead of Parent

CL/176777 adds support for the ParentFile method.
Use that instead of manually looping to the parent.

Change-Id: I15f197e583cf8d687ff21a0957de69fe45f0fc8f
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/176000
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/go.mod b/go.mod
index fe5232b..eb7a0e1 100644
--- a/go.mod
+++ b/go.mod
@@ -1,3 +1,3 @@
 module github.com/golang/protobuf
 
-require github.com/golang/protobuf/v2 v2.0.0-20190513193441-0fc49f8225fc
+require github.com/golang/protobuf/v2 v2.0.0-20190513202118-67c1d9b2c11d
diff --git a/go.sum b/go.sum
index 91254f3..8b2a55a 100644
--- a/go.sum
+++ b/go.sum
@@ -7,7 +7,7 @@
 github.com/golang/protobuf/v2 v2.0.0-20190416222953-ab61d41ec93f/go.mod h1:baUT2weUsA1MR7ocRtLXLmi2B1s4VrUT3S6tO8AYzMw=
 github.com/golang/protobuf/v2 v2.0.0-20190420063524-d24bc72368a2/go.mod h1:wcEMLTNPNYxBFS3yY7kunR0QKUgP/f+wzZaPeTbHi0g=
 github.com/golang/protobuf/v2 v2.0.0-20190509012650-00a323deed55/go.mod h1:pWnbrfE+N2TBYiklDHixM32oa26kuZCiJwxIu0DAl7Y=
-github.com/golang/protobuf/v2 v2.0.0-20190513193441-0fc49f8225fc h1:lR/aX2vpZuBmsx8I9hi5SL7t8DZqWFEAxY2tua/7Or0=
-github.com/golang/protobuf/v2 v2.0.0-20190513193441-0fc49f8225fc/go.mod h1:BvOFOLPdtAzg0go71Nf5Tchso+PBMNnE93vaAZ7dTRU=
+github.com/golang/protobuf/v2 v2.0.0-20190513202118-67c1d9b2c11d h1:YjFyyqqKRB4KxR6rkhIWwPBsCUCHfp7u4vXrru0if04=
+github.com/golang/protobuf/v2 v2.0.0-20190513202118-67c1d9b2c11d/go.mod h1:BvOFOLPdtAzg0go71Nf5Tchso+PBMNnE93vaAZ7dTRU=
 github.com/google/go-cmp v0.2.1-0.20190312032427-6f77996f0c42 h1:q3pnF5JFBNRz8sRD+IRj7Y6DMyYGTNqnZ9axTbSfoNI=
 github.com/google/go-cmp v0.2.1-0.20190312032427-6f77996f0c42/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
diff --git a/internal/proto/registry.go b/internal/proto/registry.go
index fcc6ae3..a607154 100644
--- a/internal/proto/registry.go
+++ b/internal/proto/registry.go
@@ -195,11 +195,8 @@
 // hybridEnumName returns the legacy enum identifier.
 func hybridEnumName(ed pref.EnumDescriptor) enumName {
 	var protoPkg string
-	for parent, _ := ed.Parent(); parent != nil; parent, _ = parent.Parent() {
-		if fd, ok := parent.(pref.FileDescriptor); ok {
-			protoPkg = string(fd.Package())
-			break
-		}
+	if fd := ed.ParentFile(); fd != nil {
+		protoPkg = string(fd.Package())
 	}
 	if protoPkg == "" {
 		return camelCase(string(ed.FullName()))