Skip to content

Commit f716296

Browse files
committed
updated depwarn for @submodel and tests
1 parent 044f6c3 commit f716296

File tree

3 files changed

+12
-10
lines changed

3 files changed

+12
-10
lines changed

src/submodel_macro.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Run a Turing `model` nested inside of a Turing model.
66
77
!!! warning
88
This is deprecated and will be removed in a future release.
9-
Use `left ~ to_submodel(model)` instead (see [`to_submodel(model)`](@ref)).
9+
Use `left ~ to_submodel(model)` instead (see [`to_submodel`](@ref)).
1010
1111
# Examples
1212
@@ -25,7 +25,7 @@ julia> @model function demo2(x, y)
2525
When we sample from the model `demo2(missing, 0.4)` random variable `x` will be sampled:
2626
```jldoctest submodel
2727
julia> vi = VarInfo(demo2(missing, 0.4));
28-
┌ Warning: `@submodel model` is deprecated, use `left ~ to_submodel(model)` instead.
28+
┌ Warning: `@submodel model` and `@submodel prefix=... model` are deprecated; see `to_submodel` for the up-to-date syntax.
2929
│ caller = ip:0x0
3030
└ @ Core :-1
3131
@@ -92,7 +92,7 @@ When we sample from the model `demo2(missing, missing, 0.4)` random variables `s
9292
`sub2.x` will be sampled:
9393
```jldoctest submodelprefix
9494
julia> vi = VarInfo(demo2(missing, missing, 0.4));
95-
┌ Warning: `@submodel model` is deprecated, use `to_submodel(model)` instead.
95+
┌ Warning: `@submodel model` and `@submodel prefix=... model` are deprecated; see `to_submodel` for the up-to-date syntax.
9696
│ caller = ip:0x0
9797
└ @ Core :-1
9898
@@ -138,7 +138,7 @@ julia> # When `prefix` is unspecified, no prefix is used.
138138
submodel_noprefix (generic function with 2 methods)
139139
140140
julia> @varname(x) in keys(VarInfo(submodel_noprefix()))
141-
┌ Warning: `@submodel model` is deprecated, use `left ~ to_submodel(model)` instead.
141+
┌ Warning: `@submodel model` and `@submodel prefix=... model` are deprecated; see `to_submodel` for the up-to-date syntax.
142142
│ caller = ip:0x0
143143
└ @ Core :-1
144144
true
@@ -224,7 +224,7 @@ function prefix_submodel_context(prefix::Bool, ctx)
224224
return ctx
225225
end
226226

227-
const SUBMODEL_DEPWARN_MSG = "`@submodel model` and `@submodel prefix=... model` are deprecated, use `left ~ to_submodel(model)` and `left ~ to_submodel(prefix(model, ...))`, respectively, instead."
227+
const SUBMODEL_DEPWARN_MSG = "`@submodel model` and `@submodel prefix=... model` are deprecated; see `to_submodel` for the up-to-date syntax."
228228

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

test/compiler.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ module Issue537 end
388388
@test_logs(
389389
(
390390
:warn,
391-
"`@submodel model` and `@submodel prefix=... model` are deprecated, use `left ~ to_submodel(model)` and `left ~ to_submodel(prefix(model, ...))`, respectively, instead.",
391+
"`@submodel model` and `@submodel prefix=... model` are deprecated; see `to_submodel` for the up-to-date syntax.",
392392
),
393393
outer()()
394394
)
@@ -397,7 +397,7 @@ module Issue537 end
397397
@test_logs(
398398
(
399399
:warn,
400-
"`@submodel model` and `@submodel prefix=... model` are deprecated, use `left ~ to_submodel(model)` and `left ~ to_submodel(prefix(model, ...))`, respectively, instead.",
400+
"`@submodel model` and `@submodel prefix=... model` are deprecated; see `to_submodel` for the up-to-date syntax.",
401401
),
402402
outer_with_prefix()()
403403
)
@@ -490,7 +490,7 @@ module Issue537 end
490490
num_steps = length(y[1])
491491
num_obs = length(y)
492492
@inbounds for i in 1:num_obs
493-
x ~ to_submodel(prefix(AR1(num_steps, α, μ, σ), "ar1_$i"))
493+
x ~ to_submodel(prefix(AR1(num_steps, α, μ, σ), "ar1_$i"), false)
494494
y[i] ~ MvNormal(x, 0.01 * I)
495495
end
496496
end

test/debug_utils.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,16 @@
4545
@testset "submodel" begin
4646
@model ModelInner() = x ~ Normal()
4747
@model function ModelOuterBroken()
48-
z ~ to_submodel(ModelInner())
48+
# Without automatic prefixing => `x` s used twice.
49+
z ~ to_submodel(ModelInner(), false)
4950
return x ~ Normal()
5051
end
5152
model = ModelOuterBroken()
5253
@test_throws ErrorException check_model(model; error_on_failure=true)
5354

5455
@model function ModelOuterWorking()
55-
z = to_submodel(prefix(ModelInner(), "z"))
56+
# With automatic prefixing => `x` is not duplicated.
57+
z ~ to_submodel(ModelInner())
5658
x ~ Normal()
5759
return z
5860
end

0 commit comments

Comments
 (0)