fix(eval): error on silent rebinding in the same scope #24
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Currently
--x = …twice, or rebinding a corner.a, silently replaces the binding (Hashtbl.replaceineval.ml:254,294). The step/macro design justifies=with "constructions are immutable, so there is no reassignment case" — the implementation contradicts that, and spec §8 lists no duplicate-binding error.Make duplicate binding in the same scope an error. When the step slice lands, the same rule must hold across every export form: export-all and
inlinevalidate each landed name exactly like selective export, and!applies per name in all forms. A shadowing marker that only guards the narrow path is worse than none — readers will trust an invariant that doesn't hold.