Is that a bug in Julia that wrongly overloading convert is an unsafe operation?
Sent from my iPad > On 26 Jun 2015, at 12:22 am, Simon Byrne <[email protected]> wrote: > > 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..
