Skip to content

Commit 58e4029

Browse files
authored
Block view of blocked range returns a range (#298)
1 parent 7f42aa5 commit 58e4029

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

src/blockaxis.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,9 @@ first(b::BlockedUnitRange) = b.first
251251
# ::Integer works around case where blocklasts might return different type
252252
last(b::BlockedUnitRange)::Integer = isempty(blocklasts(b)) ? first(b)-1 : last(blocklasts(b))
253253

254+
# view and indexing are identical for a unitrange
255+
Base.view(b::BlockedUnitRange, K::Block{1}) = b[K]
256+
254257
@propagate_inbounds function getindex(b::BlockedUnitRange, K::Block{1})
255258
k = Integer(K)
256259
bax = blockaxes(b,1)

test/test_blockindices.jl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,11 +127,13 @@ end
127127
@test axes(b) == (b,)
128128
@test blockaxes(b,1) isa BlockRange
129129

130-
@test @inferred(b[Block(1)]) == 1:1
131-
@test b[Block(2)] == 2:3
132-
@test b[Block(3)] == 4:6
130+
@test @inferred(b[Block(1)]) === 1:1
131+
@test b[Block(2)] === 2:3
132+
@test b[Block(3)] === 4:6
133+
@test @inferred(view(b, Block(3))) === 4:6
133134
@test_throws BlockBoundsError b[Block(0)]
134135
@test_throws BlockBoundsError b[Block(4)]
136+
@test_throws BlockBoundsError view(b, Block(4))
135137

136138
o = OffsetArray([2,2,3],-1:1)
137139
b = blockedrange(o)

0 commit comments

Comments
 (0)