We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
2 parents ff706aa + 2301d70 commit 05037f5Copy full SHA for 05037f5
base/bool.jl
@@ -95,18 +95,17 @@ isone(x::Bool) = x
95
^(x::Bool, y::Bool) = x | !y
96
^(x::Integer, y::Bool) = ifelse(y, x, one(x))
97
98
+# preserve -0.0 in `false + -0.0`
99
function +(x::Bool, y::T)::promote_type(Bool,T) where T<:AbstractFloat
100
return ifelse(x, oneunit(y) + y, y)
101
end
102
+(y::AbstractFloat, x::Bool) = x + y
103
-function *(x::Bool, y::T)::promote_type(Bool,T) where T<:Number
104
+# make `false` a "strong zero": false*NaN == 0.0
105
+function *(x::Bool, y::T)::promote_type(Bool,T) where T<:AbstractFloat
106
return ifelse(x, y, copysign(zero(y), y))
107
-function *(x::Bool, y::T)::promote_type(Bool,T) where T<:Unsigned
- return ifelse(x, y, zero(y))
108
-end
109
-*(y::Number, x::Bool) = x * y
+*(y::AbstractFloat, x::Bool) = x * y
110
111
div(x::Bool, y::Bool) = y ? x : throw(DivideError())
112
fld(x::Bool, y::Bool) = div(x,y)
0 commit comments