internal/filedesc: gracefully handle unresolved enums

If an enum dependency is unresolved, there will be no enum values.
In such a case, just fall back to using number 0.

No tests because this situation is hard to replicate.

Change-Id: I41f5e1a5c6c8afd1ab6173d2dcfa33e611fa9560
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/195982
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/internal/filedesc/desc.go b/internal/filedesc/desc.go
index 0ee518e..51ef7c1 100644
--- a/internal/filedesc/desc.go
+++ b/internal/filedesc/desc.go
@@ -579,7 +579,10 @@
 		case pref.BytesKind:
 			return pref.ValueOf([]byte(nil))
 		case pref.EnumKind:
-			return pref.ValueOf(fd.Enum().Values().Get(0).Number())
+			if evs := fd.Enum().Values(); evs.Len() > 0 {
+				return pref.ValueOf(evs.Get(0).Number())
+			}
+			return pref.ValueOf(pref.EnumNumber(0))
 		}
 	}