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))
}
}