From 61effc350a1d5c6a710ff708ce8184180bd6f7c6 Mon Sep 17 00:00:00 2001 From: Alex Saveau Date: Fri, 9 Jun 2023 01:25:12 -0700 Subject: [PATCH] Don't type check matrices (#1442) --- library/src/math/matrix.rs | 6 +++--- tests/ref/math/matrix.png | Bin 10167 -> 25677 bytes tests/typ/math/matrix.typ | 6 ++++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/library/src/math/matrix.rs b/library/src/math/matrix.rs index 84dcfd9ba..aaccc3328 100644 --- a/library/src/math/matrix.rs +++ b/library/src/math/matrix.rs @@ -93,15 +93,15 @@ pub struct MatElem { let mut width = 0; let values = args.all::>()?; - if values.iter().all(|spanned| matches!(spanned.v, Value::Content(_))) { - rows = vec![values.into_iter().map(|spanned| spanned.v.display()).collect()]; - } else { + if values.iter().any(|spanned| matches!(spanned.v, Value::Array(_))) { for Spanned { v, span } in values { let array = v.cast::().at(span)?; let row: Vec<_> = array.into_iter().map(Value::display).collect(); width = width.max(row.len()); rows.push(row); } + } else { + rows = vec![values.into_iter().map(|spanned| spanned.v.display()).collect()]; } for row in &mut rows { diff --git a/tests/ref/math/matrix.png b/tests/ref/math/matrix.png index 9e35714623412db818dfa25dda0e2e5f015892d3..d3d2681c733ff0bd3f770eb21e1b8f275a9f3c96 100644 GIT binary patch literal 25677 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 literal 10167 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 diff --git a/tests/typ/math/matrix.typ b/tests/typ/math/matrix.typ index 514827c3c..f65004a7e 100644 --- a/tests/typ/math/matrix.typ +++ b/tests/typ/math/matrix.typ @@ -57,3 +57,9 @@ $ a + mat(delim: #none, 1, 2; 3, 4) + b $ --- // Error: 13-14 expected array, found content $ mat(1, 2; 3, 4, delim: "[") $, + +--- +$ mat(B, A B) $ +$ mat(B, A B, dots) $ +$ mat(B, A B, dots;) $ +$ mat(#1, #(foo: "bar")) $