@@ -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... )
9090end
0 commit comments