Skip to content

Commit b2ad13c

Browse files
committed
Removed usage of setindex! (#432)
Some usages of `setindex!` were still there causing issues with `ThreadSafeVarInfo`, which does not have such an implementation.
1 parent 6977dc0 commit b2ad13c

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "DynamicPPL"
22
uuid = "366bfd00-2699-11ea-058f-f148b4cae6d8"
3-
version = "0.21.1"
3+
version = "0.21.2"
44

55
[deps]
66
AbstractMCMC = "80f14c24-f653-4e6a-9b94-39d6b0f70001"

src/context_implementations.jl

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,7 @@ end
457457

458458
function get_and_set_val!(
459459
rng,
460-
vi::AbstractVarInfo,
460+
vi::VarInfoOrThreadSafeVarInfo,
461461
vns::AbstractVector{<:VarName},
462462
dist::MultivariateDistribution,
463463
spl::Union{SampleFromPrior,SampleFromUniform},
@@ -470,7 +470,7 @@ function get_and_set_val!(
470470
r = init(rng, dist, spl, n)
471471
for i in 1:n
472472
vn = vns[i]
473-
vi[vn] = vectorize(dist, maybe_link(vi, vn, dist, r[:, i]))
473+
setindex!!(vi, vectorize(dist, maybe_link(vi, vn, dist, r[:, i])), vn)
474474
setorder!(vi, vn, get_num_produce(vi))
475475
end
476476
else
@@ -494,7 +494,7 @@ end
494494

495495
function get_and_set_val!(
496496
rng,
497-
vi::AbstractVarInfo,
497+
vi::VarInfoOrThreadSafeVarInfo,
498498
vns::AbstractArray{<:VarName},
499499
dists::Union{Distribution,AbstractArray{<:Distribution}},
500500
spl::Union{SampleFromPrior,SampleFromUniform},
@@ -508,7 +508,7 @@ function get_and_set_val!(
508508
for i in eachindex(vns)
509509
vn = vns[i]
510510
dist = dists isa AbstractArray ? dists[i] : dists
511-
vi[vn] = vectorize(dist, maybe_link(vi, vn, dist, r[i]))
511+
setindex!!(vi, vectorize(dist, maybe_link(vi, vn, dist, r[i])), vn)
512512
setorder!(vi, vn, get_num_produce(vi))
513513
end
514514
else
@@ -538,27 +538,27 @@ function get_and_set_val!(
538538
end
539539

540540
function set_val!(
541-
vi::AbstractVarInfo,
541+
vi::VarInfoOrThreadSafeVarInfo,
542542
vns::AbstractVector{<:VarName},
543543
dist::MultivariateDistribution,
544544
val::AbstractMatrix,
545545
)
546546
@assert size(val, 2) == length(vns)
547547
foreach(enumerate(vns)) do (i, vn)
548-
vi[vn] = val[:, i]
548+
setindex!!(vi, val[:, i], vn)
549549
end
550550
return val
551551
end
552552
function set_val!(
553-
vi::AbstractVarInfo,
553+
vi::VarInfoOrThreadSafeVarInfo,
554554
vns::AbstractArray{<:VarName},
555555
dists::Union{Distribution,AbstractArray{<:Distribution}},
556556
val::AbstractArray,
557557
)
558558
@assert size(val) == size(vns)
559559
foreach(CartesianIndices(val)) do ind
560560
dist = dists isa AbstractArray ? dists[ind] : dists
561-
vi[vns[ind]] = vectorize(dist, val[ind])
561+
setindex!!(vi, vectorize(dist, val[ind]), vns[ind])
562562
end
563563
return val
564564
end

0 commit comments

Comments
 (0)