@@ -339,19 +339,22 @@ end
339
339
340
340
function subset (varinfo:: UntypedVarInfo , vns:: AbstractVector{<:VarName} )
341
341
metadata = subset (varinfo. metadata, vns)
342
- return VarInfo (metadata, varinfo. logp, varinfo. num_produce)
342
+ return VarInfo (metadata, deepcopy ( varinfo. logp), deepcopy ( varinfo. num_produce) )
343
343
end
344
344
345
345
function subset (varinfo:: VectorVarInfo , vns:: AbstractVector{<:VarName} )
346
346
metadata = subset (varinfo. metadata, vns)
347
- # TODO (mhauru) Should we make deepcopies new RefValues for the logp and num_produce?
348
- return VarInfo (metadata, varinfo. logp, varinfo. num_produce)
347
+ return VarInfo (metadata, deepcopy (varinfo. logp), deepcopy (varinfo. num_produce))
349
348
end
350
349
351
350
function subset (varinfo:: TypedVarInfo , vns:: AbstractVector{<:VarName{sym}} ) where {sym}
352
351
# If all the variables are using the same symbol, then we can just extract that field from the metadata.
353
352
metadata = subset (getfield (varinfo. metadata, sym), vns)
354
- return VarInfo (NamedTuple {(sym,)} (tuple (metadata)), varinfo. logp, varinfo. num_produce)
353
+ return VarInfo (
354
+ NamedTuple {(sym,)} (tuple (metadata)),
355
+ deepcopy (varinfo. logp),
356
+ deepcopy (varinfo. num_produce),
357
+ )
355
358
end
356
359
357
360
function subset (varinfo:: TypedVarInfo , vns:: AbstractVector{<:VarName} )
@@ -360,7 +363,9 @@ function subset(varinfo::TypedVarInfo, vns::AbstractVector{<:VarName})
360
363
subset (getfield (varinfo. metadata, sym), filter (== (sym) ∘ getsym, vns))
361
364
end
362
365
363
- return VarInfo (NamedTuple {syms} (metadatas), varinfo. logp, varinfo. num_produce)
366
+ return VarInfo (
367
+ NamedTuple {syms} (metadatas), deepcopy (varinfo. logp), deepcopy (varinfo. num_produce)
368
+ )
364
369
end
365
370
366
371
function subset (metadata:: Metadata , vns_given:: AbstractVector{<:VarName} )
0 commit comments