For abstract types it is acceptable to return an instance of a subtype, e.g.
convert(Integer, 1.0)
Otherwise, I suspect you are in for all sorts of trouble, e.g.
julia> import Base.convert
julia> immutable Foo
x::Int
end
julia> function bar(x)
y::Foo
y=x
end
bar (generic function with 1 method)
julia> convert(::Type{Foo},x::Int) = float(x)
convert (generic function with 518 methods)
julia> bar(1)
signal (11): Segmentation fault: 11
-Simon
On Thursday, 25 June 2015 04:55:07 UTC+1, Sheehan Olver wrote:
>
>
> Is there a guide/good guidelines for overriding Base.convert? Is it
> allowed for a convert routine to ever return a different type than
> requested?
>
> My overrides (in a fairly deep type hierarchy) seem to be triggering
> numerous bugs in Julia 0.4, I believe because of issues with type
> inference. Right now I just add more overrides to fix the 0.4 bugs as they
> pop up..
>