@@ -278,17 +278,11 @@ end
278
278
# they are taken from the range/vector
279
279
# Since bounds-checking is performance-critical and uses
280
280
# indices, it's worth optimizing these implementations thoroughly
281
- indices (S:: SubArray ) = (@_inline_meta ; _indices_sub (S, 1 , S. indexes... ))
282
- _indices_sub (S:: SubArray , dim:: Int ) = ()
283
- _indices_sub (S:: SubArray , dim:: Int , :: Real , I... ) = (@_inline_meta ; _indices_sub (S, dim+ 1 , I... ))
284
- _indices_sub (S:: SubArray , dim:: Int , :: Colon , I... ) = (@_inline_meta ; (indices (parent (S), dim), _indices_sub (S, dim+ 1 , I... )... ))
285
- _indices_sub (S:: SubArray , dim:: Int , i1:: AbstractArray , I... ) = (@_inline_meta ; (indices (i1)... , _indices_sub (S, dim+ 1 , I... )... ))
286
- indices1 (S:: SubArray ) = (@_inline_meta ; _indices1 (S, 1 , S. indexes... ))
287
- _indices1 (S:: SubArray , dim) = OneTo (1 )
288
- _indices1 (S:: SubArray , dim, i1:: Real , I... ) = (@_inline_meta ; _indices1 (S, dim+ 1 , I... ))
289
- _indices1 (S:: SubArray , dim, i1:: Colon , I... ) = (@_inline_meta ; indices (parent (S), dim))
290
- _indices1 (S:: SubArray , dim, i1:: AbstractArray , I... ) = (@_inline_meta ; indices1 (i1))
291
- _indices1 {T} (S:: SubArray , dim, i1:: AbstractArray{T,0} , I... ) = (@_inline_meta ; _indices1 (S, dim+ 1 , I... ))
281
+ indices (S:: SubArray ) = (@_inline_pure_meta ; _indices_sub (S, indices (S. parent), S. indexes... ))
282
+ _indices_sub (S:: SubArray , pinds) = ()
283
+ _indices_sub (S:: SubArray , pinds, :: Real , I... ) = _indices_sub (S, tail (pinds), I... )
284
+ _indices_sub (S:: SubArray , pinds, :: Colon , I... ) = (pinds[1 ], _indices_sub (S, tail (pinds), I... )... )
285
+ _indices_sub (S:: SubArray , pinds, i1:: AbstractArray , I... ) = (unsafe_indices (i1)... , _indices_sub (S, tail (pinds), I... )... )
292
286
293
287
# # Compatability
294
288
# deprecate?
0 commit comments