@@ -39,10 +39,8 @@ Base.to_indices(A, inds, (r, args...)::Tuple{BeginEndRange,Vararg}) =
39
39
(_to_index (inds[1 ], r. start): _to_index (inds[1 ], r. stop), to_indices (A, Base. tail (inds), args)... )
40
40
Base. to_indices (A, inds, (r, args... ):: Tuple{BeginEndStepRange,Vararg} ) =
41
41
(_to_index (inds[1 ], r. start): r. step: _to_index (inds[1 ], r. stop), to_indices (A, Base. tail (inds), args)... )
42
- Base. to_indices (A, inds, (r, args... ):: Tuple{Begin,Vararg} ) =
43
- (first (inds[1 ]), to_indices (A, Base. tail (inds), args)... )
44
- Base. to_indices (A, inds, (r, args... ):: Tuple{End,Vararg} ) =
45
- (last (inds[1 ]), to_indices (A, Base. tail (inds), args)... )
42
+ Base. to_indices (A, inds, (r, args... ):: Tuple{<:Union{Begin,End,<:LazyMath},Vararg} ) =
43
+ (_to_index (inds[1 ], r), to_indices (A, Base. tail (inds), args)... )
46
44
47
45
_to_index (inds, a:: Int ) = a
48
46
_to_index (inds, :: Begin ) = first (inds)
@@ -92,8 +90,8 @@ _pf(f) = string(f)
92
90
for T in (UnitRange, AbstractUnitRange, StepRange, StepRangeLen, LinRange, Lookup)
93
91
for f in (:getindex , :view , :dotview )
94
92
@eval Base.$ f (A:: $T , i:: AbstractBeginEndRange ) = Base.$ f (A, to_indices (A, (i,))... )
95
- @eval Base.$ f (A:: $T , :: Type{Begin} ) = Base. $ f (A, firstindex (A))
96
- @eval Base. $ f (A :: $T , :: Type{End} ) = Base.$ f (A, lastindex (A) )
93
+ @eval Base.$ f (A:: $T , i :: Union{ Type{Begin},Type{End},Begin,End,LazyMath} ) =
94
+ Base.$ f (A, to_indices (A, _construct_types (i)) ... )
97
95
end
98
96
end
99
97
0 commit comments