summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crates/typst-syntax/src/lexer.rs6
-rw-r--r--tests/suite/layout/length.typ5
2 files changed, 11 insertions, 0 deletions
diff --git a/crates/typst-syntax/src/lexer.rs b/crates/typst-syntax/src/lexer.rs
index 1314016f..358c25b2 100644
--- a/crates/typst-syntax/src/lexer.rs
+++ b/crates/typst-syntax/src/lexer.rs
@@ -766,6 +766,12 @@ impl Lexer<'_> {
return self.error(eco_format!("invalid number suffix: {}", suffix));
}
+ if base != 10 {
+ let kind = self.error(eco_format!("invalid base-{base} prefix"));
+ self.hint("numbers with a unit cannot have a base prefix");
+ return kind;
+ }
+
SyntaxKind::Numeric
}
diff --git a/tests/suite/layout/length.typ b/tests/suite/layout/length.typ
index 5ba70072..71d79da9 100644
--- a/tests/suite/layout/length.typ
+++ b/tests/suite/layout/length.typ
@@ -74,3 +74,8 @@
// Hint: 2-24 use `length.to-absolute()` to resolve its em component (requires context)
// Hint: 2-24 or use `length.abs.inches()` instead to ignore its em component
#(4.5em + 6in).inches()
+
+--- issue-5519-length-base ---
+// Error: 2-9 invalid base-2 prefix
+// Hint: 2-9 numbers with a unit cannot have a base prefix
+#0b100pt