summaryrefslogtreecommitdiffstats
path: root/ffi.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2018-05-03 20:40:10 -0700
committerKaz Kylheku <kaz@kylheku.com>2018-05-03 20:40:10 -0700
commitad23b416cbd93e49f6fdc0c096c2b309448ef1c2 (patch)
tree5a8a043b05becf73ca7484f7d17281016679c8e7 /ffi.c
parent6eadc61ddd50207b582a1bcf2b4a9def30104b7a (diff)
downloadtxr-ad23b416cbd93e49f6fdc0c096c2b309448ef1c2.tar.gz
txr-ad23b416cbd93e49f6fdc0c096c2b309448ef1c2.tar.bz2
txr-ad23b416cbd93e49f6fdc0c096c2b309448ef1c2.zip
bugfix: interpreted destructuring doesn't do specials.
It looks like I neglected to treat dynamically scoped variables in destructuring; all parameters are treated as lexical. This is only true in interpreted code; compiled destructuring treats dynamics properly because it generates a let to bind all the variables which occur, and then uses assignment to populate them. * eval.c (bind_macro_params): Instead of env_vbind, use the newly introduced lex_or_dyn_bind helper function. (op_tree_bind, op_mac_param_bind): Save and restore dyn_env around bind_macro_params and the evaluation of the associated body. In op_defmacro, this is already done.
Diffstat (limited to 'ffi.c')
0 files changed, 0 insertions, 0 deletions