Skip to content

Commit 7c07fe6

Browse files
committed
Don't iterate infinitely on empty ranges
1 parent 903e6ef commit 7c07fe6

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "ArrayInterface"
22
uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"
3-
version = "3.1.6"
3+
version = "3.1.7"
44

55
[deps]
66
IfElse = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173"

src/ranges.jl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,11 @@ end
399399
const OptionallyStaticRange = Union{<:OptionallyStaticUnitRange,<:OptionallyStaticStepRange}
400400

401401
Base.eachindex(r::OptionallyStaticRange) = r
402-
@inline Base.iterate(r::OptionallyStaticRange) = (fi = Int(first(r)); (fi, fi))
402+
@inline function Base.iterate(r::OptionallyStaticRange)
403+
isempty(r) && return nothing
404+
fi = Int(first(r));
405+
fi, fi
406+
end
403407

404408
Base.to_shape(x::OptionallyStaticRange) = length(x)
405409
Base.to_shape(x::Slice{T}) where {T<:OptionallyStaticRange} = length(x)

0 commit comments

Comments
 (0)