OK I submitted issue #11874
> On 26 Jun 2015, at 2:06 pm, Stefan Karpinski <ste...@karpinski.org> wrote: > > Thanks! > > On Thu, Jun 25, 2015 at 11:12 PM, Sheehan Olver <dlfivefi...@gmail.com > <mailto:dlfivefi...@gmail.com>> wrote: > Yep I'll open an issue with Simons example. I had another issue which hadn't > narrowed down the problem which I'll replace > > Sent from my iPhone > > On 26 Jun 2015, at 12:55 pm, Stefan Karpinski <ste...@karpinski.org > <mailto:ste...@karpinski.org>> wrote: > >> Yes – adding a normal method should never segfault. Can you open an issue? >> >> On Thu, Jun 25, 2015 at 6:33 PM, Sheehan Olver <dlfivefi...@gmail.com >> <mailto:dlfivefi...@gmail.com>> 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 <simonby...@gmail.com >> <mailto:simonby...@gmail.com>> 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.. >> >