|
338 | 338 |
|
339 | 339 | BlockRange(inds::Tuple{Vararg{AbstractUnitRange{<:Integer}}}) = |
340 | 340 | BlockRange{length(inds),typeof(inds)}(inds) |
341 | | -BlockRange(inds::Vararg{AbstractUnitRange{<:Integer}}) = BlockRange(inds) |
342 | 341 |
|
343 | | -BlockRange() = BlockRange(()) |
344 | 342 | BlockRange(sizes::Tuple{Integer, Vararg{Integer}}) = BlockRange(map(oneto, sizes)) |
345 | | -BlockRange(sizes::Vararg{Integer}) = BlockRange(sizes) |
346 | 343 |
|
347 | 344 | BlockRange(B::AbstractArray) = BlockRange(blockaxes(B)) |
348 | 345 |
|
@@ -411,13 +408,13 @@ _in(b, ::Tuple{}, ::Tuple{}, ::Tuple{}) = b |
411 | 408 | @inline _in(b, i, start, stop) = _in(b & (start[1] <= i[1] <= stop[1]), tail(i), tail(start), tail(stop)) |
412 | 409 |
|
413 | 410 | # We sometimes need intersection of BlockRange to return a BlockRange |
414 | | -intersect(a::BlockRange{1}, b::BlockRange{1}) = BlockRange(intersect(a.indices[1], b.indices[1])) |
| 411 | +intersect(a::BlockRange{1}, b::BlockRange{1}) = BlockRange((intersect(a.indices[1], b.indices[1]),)) |
415 | 412 |
|
416 | 413 | # needed for scalar-like broadcasting |
417 | 414 |
|
418 | 415 | BlockSlice{Block{1,BT},T,RT}(a::Base.OneTo) where {BT,T,RT<:AbstractUnitRange} = |
419 | 416 | BlockSlice(Block(convert(BT, 1)), convert(RT, a))::BlockSlice{Block{1,BT},T,RT} |
420 | 417 | BlockSlice{BlockRange{1,Tuple{BT}},T,RT}(a::Base.OneTo) where {BT<:AbstractUnitRange,T,RT<:AbstractUnitRange} = |
421 | | - BlockSlice(BlockRange(convert(BT, Base.OneTo(1))), convert(RT, a))::BlockSlice{BlockRange{1,Tuple{BT}},T,RT} |
| 418 | + BlockSlice(BlockRange((convert(BT, Base.OneTo(1)),)), convert(RT, a))::BlockSlice{BlockRange{1,Tuple{BT}},T,RT} |
422 | 419 | BlockSlice{BlockIndexRange{1,Tuple{BT},I,BI},T,RT}(a::Base.OneTo) where {BT<:AbstractUnitRange,T,RT<:AbstractUnitRange,I,BI} = |
423 | 420 | BlockSlice(BlockIndexRange(Block(BI(1)), convert(BT, Base.OneTo(1))), convert(RT, a))::BlockSlice{BlockIndexRange{1,Tuple{BT},I,BI},T,RT} |
0 commit comments