diff --git a/Project.toml b/Project.toml index b30d1ce..f05eabe 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "InfiniteArrays" uuid = "4858937d-0d70-526a-a4dd-2d5cb5dd786c" -version = "0.12.8" +version = "0.12.9" [deps] ArrayLayouts = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" diff --git a/src/infrange.jl b/src/infrange.jl index 92f0fd2..ce4cf1e 100644 --- a/src/infrange.jl +++ b/src/infrange.jl @@ -89,6 +89,8 @@ AbstractVector{T}(a::InfStepRange) where T<:Real = InfStepRange(convert(T,a.star const InfRanges{T} = Union{InfStepRange{T},AbstractInfUnitRange{T}} const InfAxes = Union{InfRanges{<:Integer},Slice{<:AbstractInfUnitRange{<:Integer}},IdentityUnitRange{<:AbstractInfUnitRange{<:Integer}}} +Base.IteratorSize(::Type{<:InfRanges}) = Base.IsInfinite() + AbstractArray{T}(ac::Adjoint{<:Any,<:InfRanges}) where T<:Real = AbstractArray{T}(parent(ac))' AbstractMatrix{T}(ac::Adjoint{<:Any,<:InfRanges}) where T<:Real = AbstractVector{T}(parent(ac))' AbstractArray{T}(ac::Transpose{<:Any,<:InfRanges}) where T<:Real = transpose(AbstractArray{T}(parent(ac))) diff --git a/test/runtests.jl b/test/runtests.jl index f898b16..f04f89c 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -160,6 +160,14 @@ end @test length(1.:.2:∞) == ℵ₀ @test length(2:-.2:-∞) == ℵ₀ @test length(2.:-.2:-∞) == ℵ₀ + + @testset "IteratorSize" begin + @test Base.IteratorSize(1:2:∞) == Base.IsInfinite() + @test Base.IteratorSize(1:∞) == Base.IsInfinite() + s = Iterators.Stateful(2:∞) + @test first(s) == 2 + @test first(s) == 3 + end end @testset "intersect" begin