Skip to content

Commit 0b3c36e

Browse files
committed
fixed a bug in DynamicPPLJETExt.is_tilde_instance
1 parent c20ede3 commit 0b3c36e

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

ext/DynamicPPLJETExt.jl

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,15 @@ Return `true` if `x` is a method instance of a tilde function, otherwise `false`
1010
"""
1111
is_tilde_instance(x) = false
1212
is_tilde_instance(frame::JET.VirtualFrame) = is_tilde_instance(frame.linfo)
13-
is_tilde_instance(mi::Core.MethodInstance) = is_tilde_instance(mi.specTypes.parameters[1])
13+
function is_tilde_instance(mi::Core.MethodInstance)
14+
types = mi.specTypes
15+
# This can occur, for example, if `specTypes` is `UnionAll` due to an error.
16+
return if hasproperty(types, :parameters)
17+
is_tilde_instance(types.parameters[1])
18+
else
19+
false
20+
end
21+
end
1422
is_tilde_instance(::Type{typeof(DynamicPPL.tilde_assume!!)}) = true
1523
is_tilde_instance(::Type{typeof(DynamicPPL.tilde_observe!!)}) = true
1624
is_tilde_instance(::Type{typeof(DynamicPPL.dot_tilde_assume!!)}) = true

0 commit comments

Comments
 (0)