@@ -30,10 +30,12 @@ BroadcastStyle(::PseudoBlockStyle{M}, ::BlockStyle{N}) where {M,N} = BlockStyle(
3030
3131# sortedunion can assume inputs are already sorted so this could be improved
3232sortedunion (a,b) = sort! (union (a,b))
33- sortedunion (a:: Tuple , b:: Tuple ) = (a... , b... )
33+ sortedunion_tuple (a:: Tuple , b:: Tuple ) = (a... , b... )
3434sortedunion (a:: Base.OneTo , b:: Base.OneTo ) = Base. OneTo (max (last (a),last (b)))
3535sortedunion (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))
3739
3840Base. Broadcast. axistype (a:: BlockedUnitRange , b:: BlockedUnitRange ) = combine_blockaxes (a, b)
3941Base. Broadcast. axistype (a:: BlockedUnitRange , b) = combine_blockaxes (a, b)
0 commit comments