# Collect() requires length() for iterators?

**URL:** <https://discourse.julialang.org/t/collect-requires-length-for-iterators/5130>\
**Category:** New to Julia\
**Created:** [July 29, 2017, 10:57pm UTC](https://discourse.julialang.org/t/collect-requires-length-for-iterators/5130 "2017-07-29T22:57:47Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![saltpork](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/saltpork/32/1509_2.png) [@saltpork](https://discourse.julialang.org/u/saltpork)\
**Post date:** [July 29, 2017, 10:57pm UTC](https://discourse.julialang.org/t/collect-requires-length-for-iterators/5130/1 "2017-07-29T22:57:47Z")

</div>

Hi all,

I’m getting a method error when calling collect on an iterator on 0.6. Is this expected?

```julia
julia> type Iterable x::Float64 end
julia> Base.start(x::Iterable) = 0
julia> Base.next(x::Iterable, state) = (0, state+1)
julia> Base.done(x::Iterable, state) = state == 1
julia> collect(Iterable(0))
ERROR: MethodError: no method matching length(::Iterable)

```

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [July 29, 2017, 11:00pm UTC](https://discourse.julialang.org/t/collect-requires-length-for-iterators/5130/2 "2017-07-29T23:00:45Z")

</div>

`Base.iteratorsize(::Type{Iterable}) = Base.SizeUnknown()`

[https://docs.julialang.org/en/stable/manual/interfaces/#man-interface-iteration-1](https://docs.julialang.org/en/stable/manual/interfaces/#man-interface-iteration-1)

It defaults to `Base.HasLength()`. See [https://github.com/JuliaLang/julia/issues/22279](https://github.com/JuliaLang/julia/issues/22279) for discussion about that default.

---

<div class="post-metadata">

**Author:** ![saltpork](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/saltpork/32/1509_2.png) [@saltpork](https://discourse.julialang.org/u/saltpork)\
**Post date:** [July 29, 2017, 11:04pm UTC](https://discourse.julialang.org/t/collect-requires-length-for-iterators/5130/3 "2017-07-29T23:04:50Z")

</div>

thx. This must have changed between 0.4 and 0.6 which is why my old code is failing.
