Consider:

julia> abstract A{T}

julia> type B{X, Y} <: A{typejoin(X, Y)}
          x::X
          y::Y
       end

julia> super(typeof(B(1, "a")))
A{ASCIIString}

julia> super(typeof(B("a", 1)))
A{Int64}

Which is odd.

And,
julia> type C{X} <: A{super(X)}
         x::X
       end
ERROR: `super` has no method matching super(::Type{X})

Which I could not understand, X seems to be treated as something that
exists when the type declaration is interpreted...

How does Julia deal with expressions in place of super type parameters?

If possible, I would like to dispatch on the typejoin of `X` and `Y` in
`B{X, Y}`. How can I do this?

Thanks,
Shashi

Reply via email to