Skip to content

Commit 0597b2a

Browse files
committed
added testing of deprecation warning of @submodel + replaced some
usages in tests (though we don't support some of these so we cant' do that yet)
1 parent 99d99b3 commit 0597b2a

File tree

3 files changed

+25
-4
lines changed

3 files changed

+25
-4
lines changed

src/submodel_macro.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ function prefix_submodel_context(prefix::Bool, ctx)
224224
return ctx
225225
end
226226

227-
const SUBMODEL_DEPWARN_MSG = "`@submodel model` is deprecated, use `left ~ to_sampleable(model)` instead."
227+
const SUBMODEL_DEPWARN_MSG = "`@submodel model` and `@submodel prefix=... model` are deprecated, use `left ~ to_sampleable(model)` and `left ~ to_sampleable(prefix(model, ...))`, respectively, instead."
228228

229229
function submodel(prefix_expr, expr, ctx=esc(:__context__))
230230
prefix_left, prefix = getargs_assignment(prefix_expr)

test/compiler.jl

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,27 @@ module Issue537 end
382382
@test demo2()() == 42
383383
end
384384

385+
@testset "@submodel is deprecated" begin
386+
@model inner() = x ~ Normal()
387+
@model outer() = @submodel x = inner()
388+
@test_logs(
389+
(
390+
:warn,
391+
"`@submodel model` and `@submodel prefix=... model` are deprecated, use `left ~ to_sampleable(model)` and `left ~ to_sampleable(prefix(model, ...))`, respectively, instead.",
392+
),
393+
outer()()
394+
)
395+
396+
@model outer_with_prefix() = @submodel prefix="sub" x = inner()
397+
@test_logs(
398+
(
399+
:warn,
400+
"`@submodel model` and `@submodel prefix=... model` are deprecated, use `left ~ to_sampleable(model)` and `left ~ to_sampleable(prefix(model, ...))`, respectively, instead.",
401+
),
402+
outer_with_prefix()()
403+
)
404+
end
405+
385406
@testset "submodel" begin
386407
# No prefix, 1 level.
387408
@model function demo1(x)
@@ -469,7 +490,7 @@ module Issue537 end
469490
num_steps = length(y[1])
470491
num_obs = length(y)
471492
@inbounds for i in 1:num_obs
472-
@submodel prefix = "ar1_$i" x = AR1(num_steps, α, μ, σ)
493+
x ~ to_sampleable(prefix(AR1(num_steps, α, μ, σ), "ar1_$i"))
473494
y[i] ~ MvNormal(x, 0.01 * I)
474495
end
475496
end

test/debug_utils.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,14 @@
4545
@testset "submodel" begin
4646
@model ModelInner() = x ~ Normal()
4747
@model function ModelOuterBroken()
48-
@submodel z = ModelInner()
48+
z ~ to_sampleable(ModelInner())
4949
return x ~ Normal()
5050
end
5151
model = ModelOuterBroken()
5252
@test_throws ErrorException check_model(model; error_on_failure=true)
5353

5454
@model function ModelOuterWorking()
55-
@submodel prefix = true z = ModelInner()
55+
z = to_sampleable(prefix(ModelInner(), "z"))
5656
x ~ Normal()
5757
return z
5858
end

0 commit comments

Comments
 (0)