From 85f7f3ad3fc4e7cdb2946df61b9d1c436de25450 Mon Sep 17 00:00:00 2001 From: Stephan Hilb Date: Tue, 25 Aug 2020 20:56:43 +0200 Subject: [PATCH] use `SOneTo` for `eachindex()` Currently we already have `eachindex(SA[1, 2, 3, 4]) isa SOneTo` for vectors but not for matrices. This changes makes `eachindex` consistent. --- src/abstractarray.jl | 2 ++ test/abstractarray.jl | 1 + 2 files changed, 3 insertions(+) diff --git a/src/abstractarray.jl b/src/abstractarray.jl index e66b6cca..289cbc98 100644 --- a/src/abstractarray.jl +++ b/src/abstractarray.jl @@ -15,6 +15,8 @@ end Base.axes(rv::Adjoint{<:Any,<:StaticVector}) = (SOneTo(1), axes(rv.parent)...) Base.axes(rv::Transpose{<:Any,<:StaticVector}) = (SOneTo(1), axes(rv.parent)...) +Base.eachindex(::IndexLinear, a::StaticArray) = SOneTo(length(a)) + # Base.strides is intentionally not defined for SArray, see PR #658 for discussion Base.strides(a::MArray) = Base.size_to_strides(1, size(a)...) Base.strides(a::SizedArray) = strides(a.data) diff --git a/test/abstractarray.jl b/test/abstractarray.jl index 000b5189..43a446fd 100644 --- a/test/abstractarray.jl +++ b/test/abstractarray.jl @@ -7,6 +7,7 @@ using StaticArrays, Test, LinearAlgebra @test length(m) == 12 @test IndexStyle(m) == IndexLinear() @test Base.isassigned(m, 2, 2) == true + @test eachindex(m) isa SOneTo end @testset "strides" begin