Skip to content

Method ambiguities reported by Aqua #681

Description

@prbzrg

In Julia v1.10, I used Aqua to detect method ambiguities in my package impICNF/ContinuousNormalizingFlows.jl#356 and some of its report were related to this package:

Ambiguity #7==(x::ForwardDiff.Dual{Tx}, y::Real) where Tx @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:144==(x::Real, y::AbstractIrrational) @ Base irrationals.jl:90
Possible fix, define
==(::ForwardDiff.Dual{Tx}, ::AbstractIrrational) where Tx
Ambiguity #13==(x::Real, y::ForwardDiff.Dual{Ty}) where Ty @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:145==(x::AbstractIrrational, y::Real) @ Base irrationals.jl:89
Possible fix, define
==(::AbstractIrrational, ::ForwardDiff.Dual{Ty}) where Ty
Ambiguity #18
ForwardDiff.Dual(args...) @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:73
(::Type{T})(x::T) where T<:Number @ Core boot.jl:792
Possible fix, define
ForwardDiff.Dual(::ForwardDiff.Dual)
Ambiguity #19
(ForwardDiff.Dual{T, V})(x) where {T, V} @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:79
(::Type{T})(x::T) where T<:Number @ Core boot.jl:792
Possible fix, define
(ForwardDiff.Dual{T, V})(::ForwardDiff.Dual{T, V}) where {T, V}
Ambiguity #20
ForwardDiff.Dual{T, V, N}(x) where {T, V, N} @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:77
(::Type{T})(x::Base.TwicePrecision) where T<:Number @ Base twiceprecision.jl:265
Possible fix, define
ForwardDiff.Dual{T, V, N}(::Base.TwicePrecision) where {T, V, N}
Ambiguity #21
(ForwardDiff.Dual{T})(value) where T @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:69
(::Type{T})(x::Base.TwicePrecision) where T<:Number @ Base twiceprecision.jl:265
Possible fix, define
(ForwardDiff.Dual{T})(::Base.TwicePrecision) where T
Ambiguity #22
(ForwardDiff.Dual{T, V})(x) where {T, V} @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:79
(::Type{T})(x::Base.TwicePrecision) where T<:Number @ Base twiceprecision.jl:265
Possible fix, define
(ForwardDiff.Dual{T, V})(::Base.TwicePrecision) where {T, V}
Ambiguity #23
ForwardDiff.Dual(args...) @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:73
(::Type{T})(x::Base.TwicePrecision) where T<:Number @ Base twiceprecision.jl:265
Possible fix, define
ForwardDiff.Dual(::Base.TwicePrecision)
Ambiguity #24
(ForwardDiff.Dual{T, V})(x) where {T, V} @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:79
(::Type{T})(z::Complex) where T<:Real @ Base complex.jl:44
Possible fix, define
(ForwardDiff.Dual{T, V})(::Complex) where {T, V}
Ambiguity #25
ForwardDiff.Dual(args...) @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:73
(::Type{T})(z::Complex) where T<:Real @ Base complex.jl:44
Possible fix, define
ForwardDiff.Dual(::Complex)
Ambiguity #26
ForwardDiff.Dual{T, V, N}(x::Number) where {T, V, N} @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:78
(::Type{T})(z::Complex) where T<:Real @ Base complex.jl:44
Possible fix, define
ForwardDiff.Dual{T, V, N}(::Complex) where {T, V, N}
Ambiguity #27
ForwardDiff.Dual{T, V, N}(x) where {T, V, N} @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:77
(::Type{T})(z::Complex) where T<:Real @ Base complex.jl:44
Possible fix, define
ForwardDiff.Dual{T, V, N}(::Complex) where {T, V, N}
Ambiguity #28
(ForwardDiff.Dual{T})(value) where T @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:69
(::Type{T})(z::Complex) where T<:Real @ Base complex.jl:44
Possible fix, define
(ForwardDiff.Dual{T})(::Complex) where T
Ambiguity #29
ForwardDiff.Dual{T, V, N}(x) where {T, V, N} @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:77
(::Type{T})(x::AbstractChar) where T<:Union{AbstractChar, Number} @ Base char.jl:50
Possible fix, define
ForwardDiff.Dual{T, V, N}(::AbstractChar) where {T, V, N}
Ambiguity #30
ForwardDiff.Dual(args...) @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:73
(::Type{T})(x::AbstractChar) where T<:Union{AbstractChar, Number} @ Base char.jl:50
Possible fix, define
ForwardDiff.Dual(::AbstractChar)
Ambiguity #31
(ForwardDiff.Dual{T})(value) where T @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:69
(::Type{T})(x::AbstractChar) where T<:Union{AbstractChar, Number} @ Base char.jl:50
Possible fix, define
(ForwardDiff.Dual{T})(::AbstractChar) where T
Ambiguity #32
(ForwardDiff.Dual{T, V})(x) where {T, V} @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:79
(::Type{T})(x::AbstractChar) where T<:Union{AbstractChar, Number} @ Base char.jl:50
Possible fix, define
(ForwardDiff.Dual{T, V})(::AbstractChar) where {T, V}
Ambiguity #40^(x::Irrational, y::ForwardDiff.Dual{Ty}) where Ty @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:145^(::Irrational{:ℯ}, x::Number) @ Base.MathConstants mathconstants.jl:119
Possible fix, define
^(::Irrational{:ℯ}, ::ForwardDiff.Dual{Ty}) where Ty
Ambiguity #43^(x::Real, y::ForwardDiff.Dual{Ty}) where Ty @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:145^(::Irrational{:ℯ}, x::Number) @ Base.MathConstants mathconstants.jl:119
Possible fix, define
^(::Irrational{:ℯ}, ::ForwardDiff.Dual{Ty}) where Ty
Ambiguity #55convert(::Type{ForwardDiff.Dual{T, V, N}}, x) where {T, V, N} @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:435convert(::Type{T}, index::CartesianIndex{1}) where T<:Number @ Base.IteratorsMD multidimensional.jl:135
Possible fix, define
convert(::Type{ForwardDiff.Dual{T, V, N}}, ::CartesianIndex{1}) where {T, V, N}
Ambiguity #56convert(::Type{ForwardDiff.Dual{T, V, N}}, x) where {T, V, N} @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:435convert(::Type{T}, x::Base.TwicePrecision) where T<:Number @ Base twiceprecision.jl:271
Possible fix, define
convert(::Type{ForwardDiff.Dual{T, V, N}}, ::Base.TwicePrecision) where {T, V, N}
Ambiguity #59convert(::Type{ForwardDiff.Dual{T, V, N}}, x) where {T, V, N} @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:435convert(::Type{T}, x::AbstractChar) where T<:Number @ Base char.jl:185
Possible fix, define
convert(::Type{ForwardDiff.Dual{T, V, N}}, ::AbstractChar) where {T, V, N}
Ambiguity #80log(x::Irrational, y::ForwardDiff.Dual{Ty}) where Ty @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:145log(::Irrational{:ℯ}, x::Number) @ Base.MathConstants mathconstants.jl:124
Possible fix, define
log(::Irrational{:ℯ}, ::ForwardDiff.Dual{Ty}) where Ty
Ambiguity #81log(x::Real, y::ForwardDiff.Dual{Ty}) where Ty @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:145log(::Irrational{:ℯ}, x::Number) @ Base.MathConstants mathconstants.jl:124
Possible fix, define
log(::Irrational{:ℯ}, ::ForwardDiff.Dual{Ty}) where Ty
Ambiguity #90promote_rule(::Type{R}, ::Type{ForwardDiff.Dual{T, V, N}}) where {R<:Real, T, V, N} @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:427promote_rule(::Type{<:AbstractIrrational}, ::Type{T}) where T<:Real @ Base irrationals.jl:44
Possible fix, define
promote_rule(::Type{R}, ::Type{ForwardDiff.Dual{T, V, N}}) where {T, V, N, R<:AbstractIrrational}
Ambiguity #92promote_rule(::Type{R}, ::Type{ForwardDiff.Dual{T, V, N}}) where {R<:Real, T, V, N} @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:427promote_rule(::Type{S}, ::Type{T}) where {S<:AbstractIrrational, T<:Number} @ Base irrationals.jl:45
Possible fix, define
promote_rule(::Type{S}, ::Type{ForwardDiff.Dual{T, V, N}}) where {S<:AbstractIrrational, T, V, N}

I would appreciate your attention to this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions