mirror of
https://github.com/kanaka/mal.git
synced 2024-09-11 21:57:38 +03:00
cs: prevent defmacro from mutating functions
This commit is contained in:
parent
c5b50dbbbe
commit
1580db1a53
@ -162,6 +162,7 @@ namespace Mal {
|
|||||||
a1 = ast[1];
|
a1 = ast[1];
|
||||||
a2 = ast[2];
|
a2 = ast[2];
|
||||||
res = EVAL(a2, env);
|
res = EVAL(a2, env);
|
||||||
|
res = res.copy();
|
||||||
((MalFunc)res).setMacro();
|
((MalFunc)res).setMacro();
|
||||||
env.set(((MalSymbol)a1), res);
|
env.set(((MalSymbol)a1), res);
|
||||||
return res;
|
return res;
|
||||||
|
@ -162,6 +162,7 @@ namespace Mal {
|
|||||||
a1 = ast[1];
|
a1 = ast[1];
|
||||||
a2 = ast[2];
|
a2 = ast[2];
|
||||||
res = EVAL(a2, env);
|
res = EVAL(a2, env);
|
||||||
|
res = res.copy();
|
||||||
((MalFunc)res).setMacro();
|
((MalFunc)res).setMacro();
|
||||||
env.set(((MalSymbol)a1), res);
|
env.set(((MalSymbol)a1), res);
|
||||||
return res;
|
return res;
|
||||||
|
@ -162,6 +162,7 @@ namespace Mal {
|
|||||||
a1 = ast[1];
|
a1 = ast[1];
|
||||||
a2 = ast[2];
|
a2 = ast[2];
|
||||||
res = EVAL(a2, env);
|
res = EVAL(a2, env);
|
||||||
|
res = res.copy();
|
||||||
((MalFunc)res).setMacro();
|
((MalFunc)res).setMacro();
|
||||||
env.set(((MalSymbol)a1), res);
|
env.set(((MalSymbol)a1), res);
|
||||||
return res;
|
return res;
|
||||||
|
Loading…
Reference in New Issue
Block a user