Skip to content

Commit d7c549f

Browse files
Fix method ambiguity issues (#123)
* Fix method ambiguity issues * Fix format Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update tolerances --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent e149f9f commit d7c549f

File tree

3 files changed

+23
-6
lines changed

3 files changed

+23
-6
lines changed

Project.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ uuid = "80f14c24-f653-4e6a-9b94-39d6b0f70001"
33
keywords = ["markov chain monte carlo", "probablistic programming"]
44
license = "MIT"
55
desc = "A lightweight interface for common MCMC methods."
6-
version = "4.4.1"
6+
version = "4.4.2"
77

88
[deps]
99
BangBang = "198e06fe-97b7-11e9-32a5-e1d131e6ad66"

src/interface.jl

+21-4
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,30 @@ be specified with the `chain_type` argument.
3030
By default, this method returns `samples`.
3131
"""
3232
function bundle_samples(
33-
samples, ::AbstractModel, ::AbstractSampler, ::Any, ::Type; kwargs...
33+
samples, model::AbstractModel, sampler::AbstractSampler, state, ::Type{T}; kwargs...
34+
) where {T}
35+
# dispatch to internal method for default implementations to fix
36+
# method ambiguity issues (see #120)
37+
return _bundle_samples(samples, model, sampler, state, T; kwargs...)
38+
end
39+
40+
function _bundle_samples(
41+
samples,
42+
@nospecialize(::AbstractModel),
43+
@nospecialize(::AbstractSampler),
44+
@nospecialize(::Any),
45+
::Type;
46+
kwargs...,
3447
)
3548
return samples
3649
end
37-
38-
function bundle_samples(
39-
samples::Vector, ::AbstractModel, ::AbstractSampler, ::Any, ::Type{Vector{T}}; kwargs...
50+
function _bundle_samples(
51+
samples::Vector,
52+
@nospecialize(::AbstractModel),
53+
@nospecialize(::AbstractSampler),
54+
@nospecialize(::Any),
55+
::Type{Vector{T}};
56+
kwargs...,
4057
) where {T}
4158
return map(samples) do sample
4259
convert(T, sample)

test/sample.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -564,7 +564,7 @@
564564
@test ismissing(chain[1].a)
565565
@test mean(x.a for x in view(chain, 2:1_000)) 0.5 atol = 6e-2
566566
@test var(x.a for x in view(chain, 2:1_000)) 1 / 12 atol = 1e-2
567-
@test mean(x.b for x in chain) 0 atol = 0.1
567+
@test mean(x.b for x in chain) 0 atol = 0.11
568568
@test var(x.b for x in chain) 1 atol = 0.15
569569
end
570570

0 commit comments

Comments
 (0)