diff options
Diffstat (limited to 'src/eval/array.rs')
| -rw-r--r-- | src/eval/array.rs | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/eval/array.rs b/src/eval/array.rs index 9abab8cf..86347106 100644 --- a/src/eval/array.rs +++ b/src/eval/array.rs @@ -3,7 +3,7 @@ use std::fmt::{self, Debug, Formatter, Write}; use std::ops::{Add, AddAssign}; use std::sync::Arc; -use super::{Args, Func, Value}; +use super::{ops, Args, Func, Value}; use crate::diag::{At, StrResult, TypResult}; use crate::syntax::Spanned; use crate::util::ArcExt; @@ -171,18 +171,14 @@ impl Array { let mut result = Value::None; for (i, value) in self.iter().cloned().enumerate() { if i > 0 { - if i + 1 == len { - if let Some(last) = last.take() { - result = result.join(last)?; - } else { - result = result.join(sep.clone())?; - } + if i + 1 == len && last.is_some() { + result = ops::join(result, last.take().unwrap())?; } else { - result = result.join(sep.clone())?; + result = ops::join(result, sep.clone())?; } } - result = result.join(value)?; + result = ops::join(result, value)?; } Ok(result) |
