@@ -30,10 +30,12 @@ BroadcastStyle(::PseudoBlockStyle{M}, ::BlockStyle{N}) where {M,N} = BlockStyle(
30
30
31
31
# sortedunion can assume inputs are already sorted so this could be improved
32
32
sortedunion (a,b) = sort! (union (a,b))
33
- sortedunion (a:: Tuple , b:: Tuple ) = (a... , b... )
33
+ sortedunion_tuple (a:: Tuple , b:: Tuple ) = (a... , b... )
34
34
sortedunion (a:: Base.OneTo , b:: Base.OneTo ) = Base. OneTo (max (last (a),last (b)))
35
35
sortedunion (a:: AbstractUnitRange , b:: AbstractUnitRange ) = min (first (a),first (b)): max (last (a),last (b))
36
- combine_blockaxes (a, b) = _BlockedUnitRange (sortedunion (blocklasts (a), blocklasts (b)))
36
+ combine_blockaxes (a, b) = combine_blockaxes (a, b, blocklasts (a), blocklasts (b))
37
+ combine_blockaxes (a, b, abl, bbl) = length (b) == 1 ? a : _BlockedUnitRange (sortedunion (abl, bbl))
38
+ combine_blockaxes (a, b, abl:: Tuple , bbl:: Tuple ) = _BlockedUnitRange (sortedunion_tuple (abl, bbl))
37
39
38
40
Base. Broadcast. axistype (a:: BlockedUnitRange , b:: BlockedUnitRange ) = combine_blockaxes (a, b)
39
41
Base. Broadcast. axistype (a:: BlockedUnitRange , b) = combine_blockaxes (a, b)
0 commit comments