summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crates/typst-syntax/src/parser.rs4
-rw-r--r--tests/ref/math-lr-unparen.pngbin0 -> 493 bytes
-rw-r--r--tests/suite/math/delimited.typ8
3 files changed, 10 insertions, 2 deletions
diff --git a/crates/typst-syntax/src/parser.rs b/crates/typst-syntax/src/parser.rs
index a65e5ff6..f9fb8b61 100644
--- a/crates/typst-syntax/src/parser.rs
+++ b/crates/typst-syntax/src/parser.rs
@@ -442,10 +442,10 @@ fn math_unparen(p: &mut Parser, m: Marker) {
if first.text() == "(" && last.text() == ")" {
first.convert_to_kind(SyntaxKind::LeftParen);
last.convert_to_kind(SyntaxKind::RightParen);
+ // Only convert if we did have regular parens.
+ node.convert_to_kind(SyntaxKind::Math);
}
}
-
- node.convert_to_kind(SyntaxKind::Math);
}
/// The unicode math class of a string. Only returns `Some` if `text` has
diff --git a/tests/ref/math-lr-unparen.png b/tests/ref/math-lr-unparen.png
new file mode 100644
index 00000000..d418b14e
--- /dev/null
+++ b/tests/ref/math-lr-unparen.png
Binary files differ
diff --git a/tests/suite/math/delimited.typ b/tests/suite/math/delimited.typ
index 22674050..ca82427d 100644
--- a/tests/suite/math/delimited.typ
+++ b/tests/suite/math/delimited.typ
@@ -125,3 +125,11 @@ $ lr(size: #3em, |)_a^b lr(size: #3em, zws|)_a^b
--- issue-4188-lr-corner-brackets ---
// Test positioning of U+231C to U+231F
$⌜a⌟⌞b⌝$ = $⌜$$a$$⌟$$⌞$$b$$⌝$
+
+--- math-lr-unparen ---
+// Test that unparen with brackets stays as an LrElem.
+#let item = $limits(sum)_i$
+$
+ 1 / ([item]) quad
+ 1 / [item]
+$