I really doubt that it can be expressed this way, because Julia will do 
pattern matching/unification on the type of `bar`, and it would have to 
know that -1 is the inverse of +1 to unify D+1 with the type of the input 
array. Can you give more context about what you're trying to do? Why can't 
you have `bar::Array{Any, D}`?

You can also put D inside the constructor

type Foo{E}
    bar::Array{Any, E}
end
Foo(D::Int) = Foo(Array{Any, D+1}())

Foo(1)

or use typealias

On Wednesday, June 1, 2016 at 2:56:28 PM UTC-4, Robert DJ wrote:
>
> I have a custom type with a TypePar denoting a dimension and would like to 
> define the following:
>
> type Foo{D}
> bar::Array{D+1}
> end
>
> However, this does not work. As D is only 1 or 2 it would OK with
>
> type Foo{1}
> bar::Matrix
> end
>
> type Foo{2}
> bar::Array{3}
> end
>
> but unfortunately this isn't working, either. 
>
> Can this problem be solved?
>
> Thanks!
>

Reply via email to