Skip to content

Commit 7730f38

Browse files
authored
Merge pull request #667 from JuliaDiff/ox/nobool
Bools have no tangent
2 parents 75e84bc + 4b2c810 commit 7730f38

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

src/tangent_types/abstract_zero.jl

+3
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ In general, it is more likely to produce a structural tangent.
111111
function zero_tangent end
112112

113113
zero_tangent(x::Number) = zero(x)
114+
zero_tangent(x::Bool) = NoTangent()
114115

115116
function zero_tangent(x::MutableTangent{P}) where {P}
116117
zb = backing(zero_tangent(backing(x)))
@@ -178,6 +179,8 @@ end
178179

179180
# Sad heauristic methods we need because of unassigned values
180181
guess_zero_tangent_type(::Type{T}) where {T<:Number} = T
182+
guess_zero_tangent_type(::Type{Bool}) = NoTangent()
183+
181184
guess_zero_tangent_type(::Type{T}) where {T<:Integer} = typeof(float(zero(T)))
182185
function guess_zero_tangent_type(::Type{<:Array{T,N}}) where {T,N}
183186
return Array{guess_zero_tangent_type(T),N}

test/tangent_types/abstract_zero.jl

+2
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,8 @@ end
165165
@testset "basics" begin
166166
@test zero_tangent(1) === 0
167167
@test zero_tangent(1.0) === 0.0
168+
@test zero_tangent(true) === NoTangent()
169+
168170
mutable struct MutDemo
169171
x::Float64
170172
end

0 commit comments

Comments
 (0)