Skip to content

Commit 700ed07

Browse files
committed
fix expr bug
1 parent 1f7fef3 commit 700ed07

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

src/pobserve_macro.jl

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,26 +50,26 @@ function process_tilde_statements(expr::Expr)
5050
end
5151
) || error("expected block")
5252
@gensym loglike
53-
beginning_expr = quote
53+
beginning_expr = :(
5454
$loglike = if $(DynamicPPL.hasacc)($(esc(:(__varinfo__))), Val(:LogLikelihood))
5555
zero($(DynamicPPL.getloglikelihood)($(esc(:(__varinfo__)))))
5656
else
5757
zero($(DynamicPPL.LogProbType))
5858
end
59-
end
59+
)
6060
n_statements = length(statements)
6161
transformed_statements::Vector{Vector{Expr}} = map(enumerate(statements)) do (i, stmt)
6262
is_last = i == n_statements
6363
if @capture(stmt, lhs_ ~ rhs_)
6464
# TODO: We should probably perform some checks to make sure that this
6565
# indeed was meant to be an observe statement.
6666
@gensym left
67-
e = quote
68-
$left = $(esc(lhs))
69-
$loglike += $(Distributions.logpdf)($(esc(rhs)), $left)
70-
end
71-
is_last && push!(e.args, :(($left, $loglike)))
72-
e.args
67+
e = [
68+
:($left = $(esc(lhs))),
69+
:($loglike += $(Distributions.logpdf)($(esc(rhs)), $left)),
70+
]
71+
is_last && push!(e, :(($left, $loglike)))
72+
e
7373
elseif @capture(stmt, lhs_ .~ rhs_)
7474
@gensym val
7575
e = [
@@ -85,6 +85,6 @@ function process_tilde_statements(expr::Expr)
8585
e
8686
end
8787
end
88-
new_statements = [beginning_expr.args..., reduce(vcat, transformed_statements)...]
88+
new_statements = [beginning_expr, reduce(vcat, transformed_statements)...]
8989
return Expr(:block, new_statements...)
9090
end

0 commit comments

Comments
 (0)