-
Notifications
You must be signed in to change notification settings - Fork 121
Closed
Description
Here are some examples I found
julia> x,y = promote(1u"m", 1)
(1 m, 1)
julia> atan(1)
0.7853981633974483
julia> atan(y)
ERROR: MethodError: no method matching atan(::Quantity{Int64,NoDims,Unitful.FreeUnits{(),NoDims,nothing}})
Closest candidates are:
atan(::Unitful.AbstractQuantity{T,D,U}, ::Unitful.AbstractQuantity{T,D,U}) where {T, D, U} at C:\Users\sebastian\.julia\packages\Unitful\PZjMS\src\quantities.jl:187
atan(::Unitful.AbstractQuantity{T1,D,U1}, ::Unitful.AbstractQuantity{T2,D,U2}) where {T1, T2, D, U1, U2} at C:\Users\sebastian\.julia\packages\Unitful\PZjMS\src\quantities.jl:185
atan(::Unitful.AbstractQuantity, ::Unitful.AbstractQuantity) at C:\Users\sebastian\.julia\packages\Unitful\PZjMS\src\quantities.jl:188
...
Stacktrace:
[1] top-level scope at none:0
julia> x≈y
false
julia> y≈y
ERROR: type Int64 has no field val
Stacktrace:
[1] getproperty(::Int64, ::Symbol) at .\Base.jl:33
[2] isapprox(::Quantity{Int64,NoDims,Unitful.FreeUnits{(),NoDims,nothing}}, ::Quantity{Int64,NoDims,Unitful.FreeUnits{(),NoDims,nothing}}; atol::Int64, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\sebastian\.julia\packages\Unitful\PZjMS\src\quantities.jl:245
[3] isapprox(::Quantity{Int64,NoDims,Unitful.FreeUnits{(),NoDims,nothing}}, ::Quantity{Int64,NoDims,Unitful.FreeUnits{(),NoDims,nothing}}) at C:\Users\sebastian\.julia\packages\Unitful\PZjMS\src\quantities.jl:245
[4] top-level scope at none:0I could try to make a PR adding the methods for the particular cases I run into, but I'm not sure if that's the best solution. The discussion in #128 seems related.
Using ustrip is ok for user code or a package that already depends on Unitful, but in the case of writing generic code in a package that does not depend on Unitful, I don't know how to proceed (hence this issue).
Metadata
Metadata
Assignees
Labels
No labels