diff --git a/src/Promotion.jl b/src/Promotion.jl index 3fb5b7dc..3b6af43a 100644 --- a/src/Promotion.jl +++ b/src/Promotion.jl @@ -161,7 +161,7 @@ function Base.promote_rule{S1,S2,D,U1,U2}(::Type{Quantity{S1,D,U1}}, p = promote_unit(U1(), U2()) numtype = promote_type(S1,S2, - typeof(convfact(p,U1())), typeof(convfact(p,U2()))) + promote_type(typeof(convfact(p,U1())), typeof(convfact(p,U2())))) if !isunitless(p) if U1 <: ContextUnits && U2 <: ContextUnits up1 = upreferred(U1()) diff --git a/src/Unitful.jl b/src/Unitful.jl index f6ff95a1..048ee688 100644 --- a/src/Unitful.jl +++ b/src/Unitful.jl @@ -44,7 +44,8 @@ const promotion = Dict{Symbol,Unit}() include("User.jl") const NoUnits = FreeUnits{(), Dimensions{()}}() const NoDims = Dimensions{()}() -@inline isunitless{N}(::Units{N}) = N == () +isunitless(::Units) = false +isunitless(::Units{()}) = true (y::FreeUnits)(x::Number) = uconvert(y,x) (y::ContextUnits)(x::Number) = uconvert(y,x)