This is the way it is done on 0.4 at least
call{T <: Optimizer}(::Type{OptimizationTrace}, method::T) = Vector{
OptimizationState{T}}()
I thought the compat macro should handle it though.
Maybe if you write it as in the first point
in https://github.com/JuliaLang/julia/blob/master/NEWS.md#language-changes-1
On Tuesday, August 16, 2016 at 4:52:09 PM UTC+2, Patrick Kofod Mogensen
wrote:
>
> julia> using Compat
>
> julia> abstract Optimizer
>
> julia> immutable NelderMead <: Optimizer
> end
>
> julia> immutable OptimizationState{T <: Optimizer}
> iteration::Int
> value::Float64
> g_norm::Float64
> metadata::Dict
> end
>
> julia> typealias OptimizationTrace{T} Vector{OptimizationState{T}}
> Array{OptimizationState{T},1}
>
> julia> @compat OptimizationTrace{T<:Optimizer}(method::T) = Vector{
> OptimizationState{T}}()
> ERROR: cannot define function OptimizationTrace; it already has a value
>
>
> unfortunately not!
>
> On Tuesday, August 16, 2016 at 3:37:43 PM UTC+2, Kristoffer Carlsson wrote:
>>
>> What if you throw a @compat in front of the function definition?
>
>