diff --git a/Project.toml b/Project.toml index 9cf6ab670..5ef530989 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "ChainRules" uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.74.4" +version = "1.74.5" [deps] Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" diff --git a/src/rulesets/Base/nondiff.jl b/src/rulesets/Base/nondiff.jl index 7fcf13cd5..8fa7bce0a 100644 --- a/src/rulesets/Base/nondiff.jl +++ b/src/rulesets/Base/nondiff.jl @@ -81,6 +81,7 @@ @non_differentiable sum(::AbstractArray{Bool}) @non_differentiable sum(::Any, ::AbstractArray{Bool}) @non_differentiable sum(::typeof(abs2), ::AbstractArray{Bool}) # avoids an ambiguity +@non_differentiable sum(::NTuple{<:Any,Bool}) @non_differentiable vcat(::AbstractArray{Bool}...) @non_differentiable vec(::AbstractArray{Bool}) @non_differentiable Vector(::AbstractArray{Bool}) diff --git a/test/rulesets/Base/mapreduce.jl b/test/rulesets/Base/mapreduce.jl index 6c18b0aa2..033e9f19e 100644 --- a/test/rulesets/Base/mapreduce.jl +++ b/test/rulesets/Base/mapreduce.jl @@ -12,6 +12,9 @@ struct SumRuleConfig <: RuleConfig{Union{HasReverseMode}} end test_rrule(sum, Tuple(rand(5))) test_rrule(sum, (1.2, 3.4 + 5im)) test_rrule(sum, (rand(2)', rand(1,2))) + + # Boolean -- via @non_differentiable + test_rrule(sum, (true, false, true)) end @testset "sum(x; dims=$dims)" for dims in (:, 2, (1,3)) # Forward