I believe that this is how it has been designed (more or less).
While
[x, y] is concatenation,
T[x, y] where
T is a type is AFAIK just meant to construct a vector of element type
T with elements
x and
y. What surprises me is that
Int[1:3] works. Apparently the case
ref{T<:Number}(::Type{T}, r::Ranges) has been special cased to destructure the range (
here), and I'm not sure why. (Convenience?)
Anyways,
Int[(0:m-1)..., (m-n:-1)...] will do the trick.