diff options
Diffstat (limited to 'src/eval/array.rs')
| -rw-r--r-- | src/eval/array.rs | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/eval/array.rs b/src/eval/array.rs index 6ae5d7cf..d0b63b35 100644 --- a/src/eval/array.rs +++ b/src/eval/array.rs @@ -344,17 +344,14 @@ impl Array { vec.make_mut().sort_by(|a, b| { // Until we get `try` blocks :) match (key_of(a.clone()), key_of(b.clone())) { - (Ok(a), Ok(b)) => a.partial_cmp(&b).unwrap_or_else(|| { - if result.is_ok() { - result = Err(eco_format!( - "cannot order {} and {}", - a.type_name(), - b.type_name(), - )) - .at(span); - } - Ordering::Equal - }), + (Ok(a), Ok(b)) => { + typst::eval::ops::compare(&a, &b).unwrap_or_else(|err| { + if result.is_ok() { + result = Err(err).at(span); + } + Ordering::Equal + }) + } (Err(e), _) | (_, Err(e)) => { if result.is_ok() { result = Err(e); |
