On Wednesday, November 18, 2015 at 7:56:13 AM UTC-5, NotSoRecentConvert
wrote:
>
> It works now.
>
> @bernhard, my problem wasn't with joinpath but with the changes to the
> string types. My code used String so it didn't care if it was ASCIIString
> or UTF8String and swapping String with AbstractString didn't work
> initially. I was also using the joinpath code as an example to figure out
> of the devs do it.
>
> @Milan Bouchet-Valat, there must have been a change in the way parametric
> variables are parsed. You can see the before and after below. I also had
> some strange inconsistencies. For a while I was using *reload* to update
> changes but it wasn't updating the function definitions so I had to keep
> restarting Julia to properly test everything.
>
>
> *Before*
>
>
>
>
>
> *function dirlist(directory::ASCIIString;args...)function
> dirlist(directories::Array{ASCIIString,1};recur=typemax(Int64),regex=r"")After*
> function dirlist(directory::AbstractString;args...)
>
> function dirlist{T <: AbstractString}(directories::Array{T,1};recur=
> typemax(Int64),regex=r"")
>
These definitions are more general than the old definitions, so if you call
them with ASCIIString arguments then it will still call the old definitions.
If you reload a file and change a function while keeping the same argument
types, it will *replace* the old method. But if you reload a file with a
changed function signature (changed types), then it will *supplement* the
old method.