feat: implement custom numeric literals #64

Merged
rdenadai merged 3 commits from feat/lexer-custom-numeric-literals into main 2026-10-17 00:10:50 +00:00
Owner

Summary

Programs can now express domain values with typed suffixes such as 10m, while preserving normal type checking and module-scoped conversion behavior. Named imports activate suffixes, and conversions retain access to private helpers in their defining module. Complex suffix i keeps its existing meaning.

Verification

  • Ruff format and lint
  • Fast pytest suite
  • Native example, module, and custom-literal E2E suite
  • Mypy retains pre-existing repository mixin errors
## Summary Programs can now express domain values with typed suffixes such as `10m`, while preserving normal type checking and module-scoped conversion behavior. Named imports activate suffixes, and conversions retain access to private helpers in their defining module. Complex suffix `i` keeps its existing meaning. ## Verification - Ruff format and lint - Fast pytest suite - Native example, module, and custom-literal E2E suite - Mypy retains pre-existing repository mixin errors
feat: implement custom numeric literals
Some checks failed
Sigil / test (3.13) (pull_request) Failing after 8m44s
9bc40a9779
Support typed module-scoped suffix conversions so domain-specific values compose with normal expressions.
fix(codegen): exclude catch bindings from expression traversal
Some checks failed
Sigil / test (3.13) (pull_request) Has been cancelled
f2cbac9fd1
Walking every AST value exposed untyped catch bindings to codegen's semantic type validation. Restrict value traversal to match subjects while retaining numeric literal expansion traversal.
Merge branch 'main' into feat/lexer-custom-numeric-literals
All checks were successful
Sigil / test (3.13) (pull_request) Successful in 8m41s
c9ce08c2d7
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rdenadai/sigil!64
No description provided.