Skip to content

Commit

Permalink
Fix VarName parameters.
Browse files Browse the repository at this point in the history
  • Loading branch information
yebai committed Jul 25, 2017
1 parent a441583 commit b4ef284
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/core/compiler.jl
Original file line number Diff line number Diff line change
Expand Up @@ -209,13 +209,15 @@ macro model(fexpr)
return_ex = fbody.args[end] # get last statement of defined model
if typeof(return_ex) == Symbol
pop!(fbody_inner.args)
push!(fbody_inner.args, :(vn = Turing.VarName(:ret, $return_ex, "", 1)))
vstr = string(return_ex)
push!(fbody_inner.args, :(vn = Turing.VarName(:ret, Symbol($vstr), "", 1)))
push!(fbody_inner.args, Expr(:(=), Expr(:ref, :vi, :vn), return_ex))
elseif return_ex.head == :return || return_ex.head == :tuple
pop!(fbody_inner.args)
for v = return_ex.args
@assert typeof(v) == Symbol "Returned variable name must be a symbol."
push!(fbody_inner.args, :(vn = Turing.VarName(:ret, $v, "", 1)))
vstr = string(v)
push!(fbody_inner.args, :(vn = Turing.VarName(:ret, Symbol($vstr), "", 1)))
push!(fbody_inner.args, Expr(:(=), Expr(:ref, :vi, :vn), v))
end
end
Expand Down

0 comments on commit b4ef284

Please sign in to comment.