diff --git a/src/OffsetArrays.jl b/src/OffsetArrays.jl index 979f2de2..3f4174ae 100644 --- a/src/OffsetArrays.jl +++ b/src/OffsetArrays.jl @@ -456,7 +456,9 @@ Broadcast.broadcast_unalias(dest::OffsetArray, src::OffsetArray) = parent(dest) const OffsetRange{T} = OffsetVector{T,<:AbstractRange{T}} const OffsetUnitRange{T} = OffsetVector{T,<:AbstractUnitRange{T}} -Base.step(a::OffsetRange) = step(parent(a)) +for f in [:first, :last, :step] + @eval Base.$f(a::OffsetRange) = $f(parent(a)) +end Base.checkindex(::Type{Bool}, inds::AbstractUnitRange, or::OffsetRange) = Base.checkindex(Bool, inds, parent(or)) diff --git a/test/runtests.jl b/test/runtests.jl index f09cdfef..332d4948 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1492,6 +1492,14 @@ end @test a == d end end + + # Special methods for an OffsetRange + for r in Any[3:10, 3:1:10, UnitRange(3.0, 10.0), 3.0:1.0:10.0] + ro = OffsetArray(r) + @test first(ro) == first(r) + @test last(ro) == last(r) + @test step(ro) == step(r) + end end @testset "show/summary" begin