Fix Unicode handling in the math expression for identifiers and infinity - #4560
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
All reported issues were addressed across 11 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
Names follow the `XID_Start XID_Continue*` rule of UAX #31, the same one Rust spells, so letters from every script name a variable and combining marks extend a name: a decomposed `é` is one name rather than the constant `e` beside a stray mark. Digits of any script, lone marks, invisible formatting characters like the right-to-left override, and symbols including emoji can no longer begin a name, which also leaves `#`, `$`, `~`, and `@` free to become namespace prefixes once a host scope needs them. Rust's special case admitting a leading underscore is deliberately not adopted. Reads the character classes from unicode-ident, the table crate the proc-macro stack already builds with, rather than hand-rolling the ranges.
Keavon
force-pushed
the
math-parser-unicode-identifiers
branch
from
September 21, 2026 05:44
176fdd3 to
ae336fc
Compare
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Identifiers (variable bindings) are now treated the same way as the Rust spec, except no initial underscore and no middle dot looking characters which could be confused for a multiplication dot symbol. Also now prints the infinity symbol ∞ in the UI and node input/output string handling.
Partly closes #2026