Skip to content

Commit db71ae7

Browse files
authored
Merge branch 'master' into wait_just_typeassert_instead_if_asserting_isa
2 parents 2096c63 + a49bb53 commit db71ae7

File tree

4 files changed

+9
-2
lines changed

4 files changed

+9
-2
lines changed

base/char.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ size(c::AbstractChar, d::Integer) = d < 1 ? throw(BoundsError()) : 1
205205
ndims(c::AbstractChar) = 0
206206
ndims(::Type{<:AbstractChar}) = 0
207207
length(c::AbstractChar) = 1
208-
IteratorSize(::Type{Char}) = HasShape{0}()
208+
IteratorSize(::Type{<:AbstractChar}) = HasShape{0}()
209209
firstindex(c::AbstractChar) = 1
210210
lastindex(c::AbstractChar) = 1
211211
getindex(c::AbstractChar) = c

base/generator.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ IteratorSize(::Type{Any}) = SizeUnknown()
9898

9999
IteratorSize(::Type{<:Tuple}) = HasLength()
100100
IteratorSize(::Type{<:AbstractArray{<:Any,N}}) where {N} = HasShape{N}()
101-
IteratorSize(::Type{Generator{I,F}}) where {I,F} = IteratorSize(I)
101+
IteratorSize(::Type{<:Generator{I}}) where {I} = (@isdefined I) ? IteratorSize(I) : SizeUnknown()
102102

103103
haslength(iter) = IteratorSize(iter) isa Union{HasShape, HasLength}
104104

test/char.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,7 @@ Base.codepoint(c::ASCIIChar) = reinterpret(UInt8, c)
290290
@test !isempty(ASCIIChar('x'))
291291
@test ndims(ASCIIChar('x')) == 0
292292
@test ndims(ASCIIChar) == 0
293+
@test Base.IteratorSize(ASCIIChar) === Base.HasShape{0}()
293294
@test firstindex(ASCIIChar('x')) == 1
294295
@test lastindex(ASCIIChar('x')) == 1
295296
@test eltype(ASCIIChar) == ASCIIChar

test/iterators.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -988,6 +988,12 @@ end
988988
@test accumulate(+, (x^2 for x in 1:3); init=100) == [101, 105, 114]
989989
end
990990

991+
@testset "issue #58109" begin
992+
i = Iterators.map(identity, 3)
993+
j = Iterators.map(sqrt, 7)
994+
@test (@inferred Base.IteratorSize(i)) === @inferred Base.IteratorSize(eltype([i, j]))
995+
end
996+
991997
@testset "IteratorSize trait for zip" begin
992998
@test (@inferred Base.IteratorSize(zip())) == Base.IsInfinite() # for zip of empty tuple
993999
@test (@inferred Base.IteratorSize(zip((1,2,3), repeated(0)))) == Base.HasLength() # for zip of ::HasLength and ::IsInfinite

0 commit comments

Comments
 (0)