In the following example, I am passing a set of subscripts `i, j, k`

of a 3-dimensional array `A`

in the form of vector `v = [i,j,k]`

or tuple `t = (i,j,k)`

using a splat `...`

. I find that `A[v...]`

uses 2 allocations whereas `A[t...]`

doesn’t. This leads to much slower execution of `A[v...]`

compared to `A[t...]`

:

```
julia> VERSION
v"0.7.0-DEV.82"
julia> using BenchmarkTools
julia> v = [1,2,3]; t = (1,2,3); A = rand(3,3,3);
julia> @btime $A[$v...]
81.003 ns (2 allocations: 32 bytes)
0.9645012234582633
julia> @btime $A[$t...]
2.266 ns (0 allocations: 0 bytes)
0.9645012234582633
```

Why does `v...`

need to use allocations? Is this something that can be fixed, or there is something fundamental in vectors that requires allocations?