diff options
| author | wznmickey <first@wznmickey.com> | 2024-12-09 05:56:42 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-09 10:56:42 +0000 |
| commit | bb0c8140950b3eec020a4f0147bbc4ea65f3952a (patch) | |
| tree | 55289836e446e3e415cac0edeeaaa983ee84bf21 | |
| parent | f960fe60121ff7d03dfc5db429b756d7efd0cc1f (diff) | |
Forbid base prefix for numbers with a unit (#5548)
Co-authored-by: Laurenz <laurmaedje@gmail.com>
| -rw-r--r-- | crates/typst-syntax/src/lexer.rs | 6 | ||||
| -rw-r--r-- | tests/suite/layout/length.typ | 5 |
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 |
