diff --git a/Project.toml b/Project.toml index 40adb5a8..7cb512c3 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "FillArrays" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "0.11.7" +version = "0.11.8" [deps] LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" diff --git a/src/trues.jl b/src/trues.jl index da315751..a5772912 100644 --- a/src/trues.jl +++ b/src/trues.jl @@ -43,3 +43,11 @@ function Base.getindex(x::AbstractArray{T,N}, mask::Trues{N, NTuple{N,Base.OneTo end return x[trues(size(x))] # else revert to usual getindex method end + +# https://github.com/JuliaArrays/FillArrays.jl/issues/148 +function Base.getindex( + a::AbstractFill{T, 1, Tuple{Base.OneTo{Int}}}, + b::Trues{1, Tuple{Base.OneTo{Int}}}) where T + @boundscheck length(a) == length(b) || throw(BoundsError(a, b)) + return Fill(getindex_value(a), length(a)) +end diff --git a/test/runtests.jl b/test/runtests.jl index e3c69d24..86e8d378 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1204,6 +1204,8 @@ end @test_throws BoundsError ones(3)[Trues(2)] @test_throws BoundsError setindex!(ones(3), zeros(3), Trues(2)) @test_throws DimensionMismatch setindex!(ones(2), zeros(3), Trues(2)) + @test Ones(3)[Trues(3)] == Ones(3) + @test_throws BoundsError Ones(3)[Trues(2)] end @testset "FillArray interface" begin