Hi,

I am facing the following dispatch problem:

typealias MyString AbstractString

g(s::Vector{MyString}) = println("here!")
g(s::MyString) = println("there!")

a = ["asd", "bvc", "qwerty"]
b = ["asdť", "bvc", "qwerty"]


println(typeof(a))
Array{ASCIIString,1}
println(typeof(b))
Array{UTF8String,1}

julia> g(a)
ERROR: MethodError: `g` has no method matching g(::Array{ASCIIString,1})

julia> g(b)
ERROR: MethodError: `g` has no method matching g(::Array{UTF8String,1})

julia> g(b[2])
there!

julia> g(a[2])
there!

How do I make the method g(s::Vector{MyString}) accept both vector of 
ASCIIString's or UTF8String's ? I expected the supertype AbstractString to 
automatically match the both cases.

Thanks,
Jan

p.s. I am designing some functions that consumes filesystem paths. I 
assume, it is good idea to make those paths to be ::AbstractString ; I see 
many functions related to filesystem in Julia manual to consume or return 
::AbstractString 

Reply via email to