Skip to content

Commit fca037a

Browse files
authored
fix #33882, step(::StepRangeLen) should not usually convert (#34412)
1 parent 6959a0c commit fca037a

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

base/range.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,8 @@ julia> step(range(2.5, stop=10.9, length=85))
500500
"""
501501
step(r::StepRange) = r.step
502502
step(r::AbstractUnitRange{T}) where{T} = oneunit(T) - zero(T)
503-
step(r::StepRangeLen{T}) where {T} = T(r.step)
503+
step(r::StepRangeLen) = r.step
504+
step(r::StepRangeLen{T}) where {T<:AbstractFloat} = T(r.step)
504505
step(r::LinRange) = (last(r)-first(r))/r.lendiv
505506

506507
step_hp(r::StepRangeLen) = r.step

test/ranges.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1560,3 +1560,9 @@ end
15601560
@test_throws MethodError mod(3, 1:2:7)
15611561
@test_throws DivideError mod(3, 1:0)
15621562
end
1563+
1564+
@testset "issue #33882" begin
1565+
r = StepRangeLen('a',2,4)
1566+
@test step(r) === 2
1567+
@test collect(r) == ['a','c','e','g']
1568+
end

0 commit comments

Comments
 (0)