Skip to content

Commit 9d9d40a

Browse files
committed
evaluate into caller module
1 parent d0c0e01 commit 9d9d40a

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

Project.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ version = "0.1.0"
77
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
88

99
[targets]
10-
test = ["Test"]
10+
test = ["Test"]

src/Unroll.jl

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
module Unroll
22

33

4-
copy_and_substitute_tree(e, varname, newtext) = e
4+
copy_and_substitute_tree(e, varname, newtext, mod) = e
55

6-
copy_and_substitute_tree(e::Symbol, varname, newtext) =
6+
copy_and_substitute_tree(e::Symbol, varname, newtext, mod) =
77
e == varname ? newtext : e
88

9-
function copy_and_substitute_tree(e::Expr, varname, newtext)
9+
function copy_and_substitute_tree(e::Expr, varname, newtext, mod)
1010
e2 = Expr(e.head)
1111
for subexp in e.args
12-
push!(e2.args, copy_and_substitute_tree(subexp, varname, newtext))
12+
push!(e2.args, copy_and_substitute_tree(subexp, varname, newtext, mod))
1313
end
1414
if e.head == :if
1515
newe = e2
1616
try
17-
u = Core.eval(@__MODULE__, e2.args[1])
17+
u = Core.eval(mod, e2.args[1])
1818
if u == true
1919
newe = e2.args[2]
2020
elseif u == false
@@ -41,8 +41,8 @@ macro unroll(expr)
4141
end
4242
varname = expr.args[1].args[1]
4343
ret = Expr(:block)
44-
for k in Core.eval(@__MODULE__, expr.args[1].args[2])
45-
e2 = copy_and_substitute_tree(expr.args[2], varname, k)
44+
for k in Core.eval(__module__, expr.args[1].args[2])
45+
e2 = copy_and_substitute_tree(expr.args[2], varname, k, __module__)
4646
push!(ret.args, e2)
4747
end
4848
esc(ret)
@@ -56,8 +56,8 @@ macro tuplegen(expr)
5656
end
5757
varname = expr.args[2].args[1]
5858
ret = Expr(:tuple)
59-
for k in Core.eval(@__MODULE__, expr.args[2].args[2])
60-
e2 = copy_and_substitute_tree(expr.args[1], varname, k)
59+
for k in Core.eval(__module__, expr.args[2].args[2])
60+
e2 = copy_and_substitute_tree(expr.args[1], varname, k, __module__)
6161
push!(ret.args,e2)
6262
end
6363
esc(ret)

0 commit comments

Comments
 (0)