@@ -305,22 +305,29 @@ const IIUR = IdentityUnitRange{S} where S<:AbstractUnitRange{T} where T<:Integer
305
305
306
306
Base. step (a:: OffsetRange ) = step (parent (a))
307
307
308
- Base. getindex (a:: OffsetRange , r:: OffsetRange ) = OffsetArray (a[parent (r)], r. offsets)
309
- Base. getindex (a:: OffsetRange , r:: AbstractRange ) = a. parent[r .- a. offsets[1 ]]
310
- Base. getindex (a:: AbstractRange , r:: OffsetRange ) = OffsetArray (a[parent (r)], r. offsets)
308
+ @propagate_inbounds Base. getindex (a:: OffsetRange , r:: OffsetRange ) = OffsetArray (a[parent (r)], r. offsets)
309
+ @propagate_inbounds function Base. getindex (a:: OffsetRange , r:: IdOffsetRange )
310
+ OffsetArray (a. parent[r. parent .+ (r. offset - a. offsets[1 ])], r. offset)
311
+ end
312
+ @propagate_inbounds Base. getindex (r:: OffsetRange , s:: IIUR ) =
313
+ OffsetArray (r[s. indices], s)
314
+ @propagate_inbounds Base. getindex (a:: OffsetRange , r:: AbstractRange ) = a. parent[r .- a. offsets[1 ]]
315
+ @propagate_inbounds Base. getindex (a:: AbstractRange , r:: OffsetRange ) = OffsetArray (a[parent (r)], r. offsets)
311
316
312
317
@propagate_inbounds Base. getindex (r:: UnitRange , s:: IIUR ) =
313
318
OffsetArray (r[s. indices], s)
314
319
315
320
@propagate_inbounds Base. getindex (r:: StepRange , s:: IIUR ) =
316
321
OffsetArray (r[s. indices], s)
317
322
318
- @inline @propagate_inbounds Base. getindex (r:: StepRangeLen{T,<:Base.TwicePrecision,<:Base.TwicePrecision} , s:: IIUR ) where T =
323
+ # this method is needed for ambiguity resolution
324
+ @propagate_inbounds Base. getindex (r:: StepRangeLen{T,<:Base.TwicePrecision,<:Base.TwicePrecision} , s:: IIUR ) where T =
319
325
OffsetArray (r[s. indices], s)
320
- @inline @propagate_inbounds Base. getindex (r:: StepRangeLen{T} , s:: IIUR ) where {T} =
326
+
327
+ @propagate_inbounds Base. getindex (r:: StepRangeLen{T} , s:: IIUR ) where {T} =
321
328
OffsetArray (r[s. indices], s)
322
329
323
- @inline @ propagate_inbounds Base. getindex (r:: LinRange , s:: IIUR ) =
330
+ @propagate_inbounds Base. getindex (r:: LinRange , s:: IIUR ) =
324
331
OffsetArray (r[s. indices], s)
325
332
326
333
function Base. show (io:: IO , r:: OffsetRange )
0 commit comments