The index seems to be one-based or otherwise depending on whether I explicitly specify the lower and upper bounds or leave it implicit. Why is this the case?

```
julia> a=zeros(-1:1);
julia> b=view(a,-1:1); axes(b)
(Base.OneTo(3),)
julia> b=view(a,:); axes(b)
(Base.IdentityUnitRange(-1:1),)
julia> @which view(a,:)
view(A::AbstractArray, I::Vararg{Any,N}) where N in Base at subarray.jl:153
julia> @which view(a,-1:1)
view(A::AbstractArray, I::Vararg{Any,N}) where N in Base at subarray.jl:153
```

I would have expected the behavior to be identical. Why is there a difference? Is there a way to retain the index information in the view while specifying the bounds?

Evidently this is how OffsetArrays are sliced, as a similar result is obtained without views.

```
julia> a=zeros(-1:1)
OffsetArray(::Array{Float64,1}, -1:1) with eltype Float64 with indices -1:1:
0.0
0.0
0.0
julia> axes(a[:])
(Base.IdentityUnitRange(-1:1),)
julia> axes(a[-1:1])
(Base.OneTo(3),)
```

Indexing in Julia followsâ€ the following rule: if `b = a[idx]`

for some vector index `idx`

, then `b[j] = a[idx[j]]`

. Since `-1:1`

has axes of `Base.OneTo(3)`

, `b`

has the same indexes. This is How It Should Be.

But you can do the following:

```
julia> using OffsetArrays
julia> a=zeros(-1:1);
julia> b = a[Base.IdentityUnitRange(-1:1)];
julia> axes(b)
(Base.IdentityUnitRange(-1:1),)
julia> axes(a)
(Base.IdentityUnitRange(-1:1),)
```

â€ or *should* follow, any violations are a bug

3 Likes