Skip to content

Commit df171de

Browse files
ranges: compare lengths in == for zero-step StepRangeLen (#64450)
Co-authored-by: Miles Cranmer <miles.cranmer@gmail.com>
1 parent ee862f9 commit df171de

2 files changed

Lines changed: 2 additions & 1 deletion

File tree

‎base/range.jl‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1171,6 +1171,7 @@ end
11711171
function ==(r::Union{StepRange{T},StepRangeLen{T,T}}, s::Union{StepRange{T},StepRangeLen{T,T}}) where {T}
11721172
isempty(r) && return isempty(s)
11731173
_has_length_one(r) && return _has_length_one(s) & (first(r) == first(s))
1174+
iszero(step(r)) && return iszero(step(s)) && (first(r) == first(s)) && (length(r) == length(s))
11741175
(first(r) == first(s)) & (step(r) == step(s)) & (last(r) == last(s))
11751176
end
11761177

‎test/ranges.jl‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1147,7 +1147,7 @@ end
11471147
range(0, stop=1, length=20), map(Float32, range(0, stop=1, length=20)),
11481148
3:2, 5:-2:7, range(0.0, step=2.0, length=0), 3//2:3//2:0//1, LinRange(2,3,0),
11491149
Base.OneTo(1), 1:1, 1:-3:1, 1//1:1//3:1//1, range(1.0, step=2.5, length=1),
1150-
LinRange(1,1,1), LinRange(1,1,2)]
1150+
LinRange(1,1,1), LinRange(1,1,2), StepRangeLen(1, 0, 2), StepRangeLen(1, 0, 3)]
11511151
for r in Rs
11521152
local r
11531153
ar = Vector(r)

0 commit comments

Comments
 (0)