Skip to content

Commit fe965b4

Browse files
committed
Follow up JuliaLang#45236, make length(::StepRange{Int8,Int128}) stable
1 parent 7bd9ea2 commit fe965b4

2 files changed

Lines changed: 3 additions & 2 deletions

File tree

base/range.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -799,7 +799,7 @@ let smallints = (Int === Int64 ?
799799
function length(r::OrdinalRange{<:smallints})
800800
s = step(r)
801801
isempty(r) && return 0
802-
return div(Int(last(r)) - Int(first(r)), s) + 1
802+
return Int(div(Int(last(r)) - Int(first(r)), s)) + 1
803803
end
804804
length(r::AbstractUnitRange{<:smallints}) = Int(last(r)) - Int(first(r)) + 1
805805
length(r::OneTo{<:smallints}) = Int(r.stop)

test/ranges.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2032,7 +2032,8 @@ end
20322032
end
20332033

20342034
@testset "length(StepRange()) type stability" begin
2035-
typeof(length(StepRange(1,Int128(1),1))) == typeof(length(StepRange(1,Int128(1),0)))
2035+
typeof(length(StepRange(1,Int128(1),1))) == typeof(length(StepRange(1,Int128(1),0))) #bigints
2036+
typeof(length(StepRange(Int8(1),Int128(1),Int8(1)))) == typeof(length(StepRange(Int8(1),Int128(1),Int8(0)))) #smallints
20362037
typeof(checked_length(StepRange(1,Int128(1),1))) == typeof(checked_length(StepRange(1,Int128(1),0)))
20372038
end
20382039

0 commit comments

Comments
 (0)