There's an open issue to fix this, which we should definitely implement. I believe that Jeff had done it and just not merged but maybe I'm not remembering that correctly.
On Wed, Oct 29, 2014 at 1:51 PM, John Myles White <[email protected]> wrote: > I'm pretty sure this sort of thing always works since type declarations on > variables behave like convert calls: > > julia> function foo() > a::Int64 = 0x01 > return a > end > foo (generic function with 1 method) > > julia> foo() > 1 > > -- John > > On Oct 29, 2014, at 10:50 AM, Zenna Tavares <[email protected]> > wrote: > > > Also, the following runs but still returns a Vector{Any}. How is this > possible? > > > > function makestring(fun) > > A::Array{ASCIIString} = [fun(i) for i = 1:3] > > end > > > > > > On Wednesday, October 29, 2014 1:45:51 PM UTC-4, Zenna Tavares wrote: > > As shown in the following example, I am getting differently typed arrays > depending on where I use the list comprehension. > > > > f(i) = "$i" > > A = [f(i) for i = 1:3] > > function makestring(fun) > > A = [fun(i) for i = 1:3] > > end > > B = makestring(f) > > > > In this example A has type Vector{ASCIIString} while B has type > Vector{Any}. What gives? And is there a workaround such that we get a more > specific type? > > > > I understand there are some open issues related to this, but I am not > sure if this case comes under what's already been discussed. > > > > > >
