diff options
Diffstat (limited to 'crates')
| -rw-r--r-- | crates/typst/src/eval/array.rs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/crates/typst/src/eval/array.rs b/crates/typst/src/eval/array.rs index bee3fae7..f139907f 100644 --- a/crates/typst/src/eval/array.rs +++ b/crates/typst/src/eval/array.rs @@ -473,9 +473,18 @@ impl Array { #[variadic] others: Vec<Array>, ) -> SourceResult<Array> { - // Fast path for just two arrays. let mut args = args; - if args.remaining() <= 1 { + + // Fast path for one array. + if args.remaining() == 0 { + return Ok(self + .iter() + .map(|item| array![item.clone()].into_value()) + .collect()); + } + + // Fast path for just two arrays. + if args.remaining() == 1 { let other = args.expect::<Array>("others")?; args.finish()?; return Ok(self |
