Works for me. Are you sure the error isn't in "anotherfunction"? I just 
deleted that line and got no error.

(There's also a typo, you need eltype(A) instead of eltype(T).)

--Tim

On Wednesday, May 20, 2015 12:33:39 AM Sheehan Olver wrote:
> I have an example that is along the lines of
> 
> abstract Foo{T}
> Base.eltype{T}(::Foo{T})=T
> 
> 
> function foo(A::Foo)  # assumes eltype(A) is a matrix and eltype(eltype(A))
> is a number
>     ret=Array(Foo{eltype(eltype(T))},0)
>     push!(ret,anotherfunction(A))
> end
> 
> This is returning an error like expected Foo{Any}, got Foo{Float64} but
> this error only occurs when calling from command line, not line-by-line in
> Juno.  My feeling is that eltype is being inlined incorrectly, but I have
> no idea how to debug it since its inconsistent.  I can hack around it by
> splitting the command into two but its not ideal:
> 
> function foo(AT::Type,A::Foo)
>     ret=Array(Foo{AT},0)
>     push!(ret,anotherfunction(A))
> end
> 
> foo(A::Foo)=foo(eltype(eltype(A)),A)

Reply via email to