Yes – adding a normal method should never segfault. Can you open an issue?
On Thu, Jun 25, 2015 at 6:33 PM, Sheehan Olver <[email protected]> wrote: > 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.. >> >
