@@ -105,23 +105,23 @@ unsafe_length_one_to(lst::Int) = lst
105105unsafe_length_one_to (:: StaticInt{L} ) where  {L} =  lst
106106
107107Base. @propagate_inbounds  function  Base. getindex (r:: OptionallyStaticUnitRange , i:: Integer )
108-   if  known_first (r) ===  oneunit (r )
108+   if  known_first (r) ===  oneunit (eltype (r) )
109109    return  get_index_one_to (r, i)
110110  else 
111111    return  get_index_unit_range (r, i)
112112  end 
113113end 
114114
115115@inline  function  get_index_one_to (r, i)
116-   @boundscheck  if  ((i >   0 )  &  (i <=  last (r)))
116+   @boundscheck  if  ((i <   1 )  ||  (i >  last (r)))
117117    throw (BoundsError (r, i))
118118  end 
119119  return  convert (eltype (r), i)
120120end 
121121
122122@inline  function  get_index_unit_range (r, i)
123123  val =  first (r) +  (i -  1 )
124-   @boundscheck  if  i  >   0   &&   val <=  last (r) &&  val >=  first (r)
124+   @boundscheck  if  (i  <   1 )  ||  ( val >  last (r) &&  val <  first (r) )
125125    throw (BoundsError (r, i))
126126  end 
127127  return  convert (eltype (r), val)
@@ -169,15 +169,15 @@ function Base.length(r::OptionallyStaticUnitRange)
169169  if  isempty (r)
170170    return  0 
171171  else 
172-     if  known_first (r) ===  0 
172+     if  known_first (r) ===  1 
173173      return  unsafe_length_one_to (last (r))
174174    else 
175175      return  unsafe_length_unit_range (first (r), last (r))
176176    end 
177177  end 
178178end 
179179
180- unsafe_length_unit_range (start:: Integer , stop:: Integer ) =  Int (start  -  stop  +  1 )
180+ unsafe_length_unit_range (start:: Integer , stop:: Integer ) =  Int ((stop  -  start)  +  1 )
181181
182182""" 
183183    indices(x[, d]) 
0 commit comments