Skip to content

Commit 8d6155f

Browse files
committed
Handle 0 dim broadcast
1 parent 3a28e4c commit 8d6155f

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

src/vector_of_array.jl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ struct VectorOfArrayStyle{N} <: Broadcast.AbstractArrayStyle{N} end # N is only
153153
VectorOfArrayStyle(::Val{N}) where N = VectorOfArrayStyle{N}()
154154

155155
# The order is important here. We want to override Base.Broadcast.DefaultArrayStyle to return another Base.Broadcast.DefaultArrayStyle.
156+
Broadcast.BroadcastStyle(a::VectorOfArrayStyle, ::Base.Broadcast.DefaultArrayStyle{0}) = a
156157
Broadcast.BroadcastStyle(::VectorOfArrayStyle{N}, a::Base.Broadcast.DefaultArrayStyle{M}) where {M,N} = Base.Broadcast.DefaultArrayStyle(Val(max(M, N)))
157158
Broadcast.BroadcastStyle(::VectorOfArrayStyle{N}, a::Base.Broadcast.AbstractArrayStyle{M}) where {M,N} = typeof(a)(Val(max(M, N)))
158159
Broadcast.BroadcastStyle(::VectorOfArrayStyle{M}, ::VectorOfArrayStyle{N}) where {M,N} = VectorOfArrayStyle(Val(max(M, N)))
@@ -161,7 +162,7 @@ Broadcast.BroadcastStyle(::Type{<:AbstractVectorOfArray{T,N}}) where {T,N} = Vec
161162
@inline function Base.copy(bc::Broadcast.Broadcasted{<:VectorOfArrayStyle})
162163
N = narrays(bc)
163164
x = unpack_voa(bc, 1)
164-
return VectorOfArray(map(1:N) do i
165+
VectorOfArray(map(1:N) do i
165166
copy(unpack_voa(bc, i))
166167
end)
167168
end
@@ -195,7 +196,7 @@ common_length(a, b) =
195196
_narrays(args::AbstractVectorOfArray) = length(args)
196197
@inline _narrays(args::Tuple) = common_length(narrays(args[1]), _narrays(Base.tail(args)))
197198
_narrays(args::Tuple{Any}) = _narrays(args[1])
198-
_narrays(args::Tuple{}) = 0
199+
_narrays(::Any) = 0
199200

200201
# drop axes because it is easier to recompute
201202
@inline unpack_voa(bc::Broadcast.Broadcasted{Style}, i) where Style = Broadcast.Broadcasted{Style}(bc.f, unpack_args_voa(i, bc.args))

0 commit comments

Comments
 (0)