From 5260f85952640f7766c0f575c5c547e621baa9b3 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Sat, 2 Oct 2021 11:49:40 +0200 Subject: [PATCH] Fix value_owned for ArcValue --- implementations/rust/preserves/src/value/repr.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/implementations/rust/preserves/src/value/repr.rs b/implementations/rust/preserves/src/value/repr.rs index 305569e..f703436 100644 --- a/implementations/rust/preserves/src/value/repr.rs +++ b/implementations/rust/preserves/src/value/repr.rs @@ -1389,7 +1389,10 @@ impl NestedValue for ArcValue { #[inline(always)] fn value_owned(self) -> Value { - Arc::try_unwrap(self.0).unwrap_or_else(|_| panic!("value_owned on ArcValue with refcount greater than one")).1 + match Arc::try_unwrap(self.0) { + Ok(AnnotatedValue(_anns, v)) => v, + Err(r) => r.1.clone(), + } } }