Skip to content

Parser accepts a bare trailing decimal point ('1.') as a valid empty fraction — ruled invalid #24

Description

@thedavidmeister

Human design ruling (2026-07-04, review of PR #22): an empty fraction is INVALID — decimalStringTofixedPoint("1.") currently parses as 1e18 but must revert with ParseDecimalInvalidString. A trailing point with no fractional digits is a malformed literal, not UX generosity.

Fix: reject in LibFixedPointDecimalParse (the decimal-point gate must require at least one digit after the point), update/extend tests to pin the revert with the exact selector, and sweep for any existing test or fixture that relies on the permissive acceptance.

Category note: check sibling decimal parsers (rain.math.float string parse, rainlang literal parsing) for the same acceptance — the ruling is about the FORM, so any parser in the org accepting a bare trailing point has the same bug.

🤖 Generated with Claude Code

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions