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? 
>
>

Reply via email to