Skip to content

Commit f5a7aa0

Browse files
committed
fix dot broadcasts in @fwdmodel
1 parent dfe2006 commit f5a7aa0

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/simpleppl.jl

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@ macro fwdmodel(def)
3232
return :(_vars[$(QuoteNode(var))] = (Base.@isdefined($var) && !ismissing($var) ? $var : ($var = $rhs)))
3333
elseif !isexpr(x, :block) && @capture(x, (f_(args__; kwargs__) | f_(args__)))
3434
kwargs = kwargs == nothing ? () : kwargs
35-
if (f isa Symbol) && !(f in maybe_local_var) && isdefined(__module__, f)
36-
if is_simpleppl_model(getfield(__module__, f))
35+
if (f isa Symbol) && !startswith(string(f),".")
36+
if !(f in maybe_local_var) && isdefined(__module__, f) && is_simpleppl_model(getfield(__module__, f))
3737
return :($f($(Simulate()), _vars, rng, $(args...); $(kwargs...)))
38+
else
39+
return :($is_simpleppl_model($f) ? $f($(Simulate()), _vars, rng, $(args...); $(kwargs...)) : $x)
3840
end
39-
else
40-
return :($is_simpleppl_model($f) ? $f($(Simulate()), _vars, rng, $(args...); $(kwargs...)) : $x)
4141
end
4242
end
4343
return x
@@ -58,12 +58,12 @@ macro fwdmodel(def)
5858
return :($var = $rhs)
5959
elseif !isexpr(x, :block) && @capture(x, (f_(args__; kwargs__) | f_(args__)))
6060
kwargs = kwargs == nothing ? () : kwargs
61-
if (f isa Symbol) && !(f in maybe_local_var) && isdefined(__module__, f)
62-
if is_simpleppl_model(getfield(__module__, f))
61+
if (f isa Symbol) && !startswith(string(f),".")
62+
if !(f in maybe_local_var) && isdefined(__module__, f) && is_simpleppl_model(getfield(__module__, f))
6363
return :($f($(Logpdf()), _logpdf, $(args...); $(kwargs...)))
64+
else
65+
return :($is_simpleppl_model($f) ? $f($(Logpdf()), _logpdf, $(args...); $(kwargs...)) : $x)
6466
end
65-
else
66-
return :($is_simpleppl_model($f) ? $f($(Logpdf()), _logpdf, $(args...); $(kwargs...)) : $x)
6767
end
6868
end
6969
return x

0 commit comments

Comments
 (0)