try this:

type LoHiPair{T<:Real}
    lo::T
    hi::T

    function LoHiPair{A}(lo::A, hi::A)
        if lo > hi
           throw( error("out of order") )
       end
       new(lo, hi)
    end
end

LoHiPair{T<:Real}(lo::T, hi::T) = LoHiPair{T}(lo, hi)


On Tuesday, April 26, 2016 at 3:57:59 PM UTC-4, CrocoDuck O'Ducks wrote:
>
> Hi there!
>
> I was reading this 
> <http://docs.julialang.org/en/release-0.4/manual/constructors/#inner-constructor-methods>
>  
> and trying the code, which I saved into a file called test.jl:
>
> type OrderedPair
>   x::Real
>   y::Real
>
>   OrderedPair(x,y) = x > y ? error("out of order") : new(x,y)
> end
>
>
> If I use lintfile("test.jl") I get this:
>
> ConstrTest.jl:5 E611 : constructor doesn't seem to return the constructed 
> object
>
> I am implementing a similar constructor for a project of mine and I was 
> wondering whether, in general, the use of error() in the constructor is 
> good practice or if I should prefer other ways to solve the problem.
>

Reply via email to