diff --git a/Project.toml b/Project.toml index 46e12d7..8491db4 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "Static" uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" authors = ["chriselrod", "ChrisRackauckas", "Tokazama"] -version = "0.6.4" +version = "0.6.5" [deps] IfElse = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" diff --git a/src/ndindex.jl b/src/ndindex.jl index ade1dee..5e044e2 100644 --- a/src/ndindex.jl +++ b/src/ndindex.jl @@ -65,7 +65,7 @@ end # length Base.length(@nospecialize(x::NDIndex))::Int = length(Tuple(x)) -Base.length(@nospecialize(T::Type{<:NDIndex}))::Int = @inbounds(T.parameters[1]) +Base.length(::Type{<:NDIndex{N}}) where {N} = N # indexing @propagate_inbounds function Base.getindex(x::NDIndex{N,T}, i::Int)::Int where {N,T} diff --git a/test/runtests.jl b/test/runtests.jl index 6260449..957a602 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -338,6 +338,8 @@ using Test @test @inferred(Base.IteratorsMD.split(x, Val(2))) === (NDIndex(1, 2), NDIndex(3,)) @test @inferred(length(x)) === 3 @test @inferred(length(typeof(x))) === 3 + NDIndex2{I<:Tuple{Vararg{Union{StaticInt,Int},2}}} = NDIndex{2, I} + @test length(NDIndex2) === 2 @test @inferred(y[2]) === 2 @test @inferred(y[static(2)]) === static(2)