Skip to content

Commit 06599cf

Browse files
committed
Add error hint if marginalize is called before loading MLD
1 parent e590e02 commit 06599cf

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

src/DynamicPPL.jl

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,9 +200,9 @@ include("test_utils.jl")
200200
include("experimental.jl")
201201
include("deprecated.jl")
202202

203-
# Better error message if users forget to load JET
204203
if isdefined(Base.Experimental, :register_error_hint)
205204
function __init__()
205+
# Better error message if users forget to load JET.jl
206206
Base.Experimental.register_error_hint(MethodError) do io, exc, argtypes, _
207207
requires_jet =
208208
exc.f === DynamicPPL.Experimental._determine_varinfo_jet &&
@@ -223,6 +223,23 @@ if isdefined(Base.Experimental, :register_error_hint)
223223
end
224224
end
225225

226+
# Same for MarginalLogDensities.jl
227+
Base.Experimental.register_error_hint(MethodError) do io, exc, argtypes, _
228+
requires_mld =
229+
exc.f === DynamicPPL.marginalize &&
230+
length(argtypes) == 2 &&
231+
argtypes[1] <: Model &&
232+
argtypes[2] <: AbstractVector{<:Union{Symbol,<:VarName}}
233+
if requires_mld
234+
printstyled(
235+
io,
236+
"\n\n `$(exc.f)` requires MarginalLogDensities.jl to be loaded.\n Please run `using MarginalLogDensities` before calling `$(exc.f)`.\n";
237+
color=:cyan,
238+
bold=true,
239+
)
240+
end
241+
end
242+
226243
Base.Experimental.register_error_hint(MethodError) do io, exc, argtypes, _
227244
is_evaluate_three_arg =
228245
exc.f === AbstractPPL.evaluate!! &&

0 commit comments

Comments
 (0)