diff options
Diffstat (limited to 'src/eval/array.rs')
| -rw-r--r-- | src/eval/array.rs | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/eval/array.rs b/src/eval/array.rs index 17192cb3..f6adee6d 100644 --- a/src/eval/array.rs +++ b/src/eval/array.rs @@ -7,6 +7,7 @@ use std::rc::Rc; use super::Value; use crate::diag::StrResult; +use crate::util::RcExt; /// Create a new [`Array`] from values. #[allow(unused_macros)] @@ -169,10 +170,7 @@ impl IntoIterator for Array { type IntoIter = std::vec::IntoIter<Value>; fn into_iter(self) -> Self::IntoIter { - match Rc::try_unwrap(self.0) { - Ok(vec) => vec.into_iter(), - Err(rc) => (*rc).clone().into_iter(), - } + Rc::take(self.0).into_iter() } } |
