Created by: natefaubion
Fixes #215 (closed)
This is a complete rewrite of letstx
that handles all sorts of edge cases. The primary problem with the previous letstx
was that it immediately called return
which means it couldn't be used in branches or loops. This rewrite avoids withSyntax
and syntaxCase
completely, and has a much simpler expansion. It mimics how let
scope works, and can shadow pattern vars within an inner block without it affecting the outer pattern scope. The rewrite also has a nice consequence of allowing you to load multiple tokens into a pattern var without having to use a repeater, which is far more intuitive. Loading repeaters is still supported though for when you need it.
withSyntax
should be considered deprecated, and will likely be removed with the 0.5.0 bump.