Skip to content

Some ambiguities found with Aqua #435

Open
@andreasvarga

Description

@andreasvarga

I tried to check my packages with Aqua.jl (just for fun).

Performing the ambiguity test strictly for my package I obtained no ambiguities in my code

julia> Aqua.test_ambiguities(MatrixPencils,recursive=false)
Test Passed
  Expression: success(pipeline(cmd; stdout = stdout, stderr = stderr))

However, without the recursive = false setting, I obtained a lot of complaints, which apparently originate from Polynomials. So, I performed the test only for Polynomials and got

julia> Aqua.test_ambiguities(Polynomials,recursive=false)
Skipping Polynomials.order
12 ambiguities found
Ambiguity #1
/(p::P, c::S) where {S, T, X, P<:Polynomials.FactoredPolynomial{T, X}} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\polynomials\factored_polynomial.jl:276
/(p::Polynomials.AbstractPolynomial, q::PQ) where PQ<:Polynomials.AbstractRationalFunction in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\rational-functions\common.jl:354

Possible fix, define
  /(::P, ::PQ) where {PQ<:Polynomials.AbstractRationalFunction, T, X, P<:Polynomials.FactoredPolynomial{T, X}}

Ambiguity #2
+(p::P, c::T) where {T, X, P<:Polynomials.ChebyshevT{T, X}} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\polynomials\ChebyshevT.jl:225
+(p::Polynomials.AbstractPolynomial, q::Polynomials.AbstractRationalFunction) in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\rational-functions\common.jl:299

Possible fix, define
  +(::P, ::T) where {T<:Polynomials.AbstractRationalFunction, X, P<:Polynomials.ChebyshevT{T, X}}

Ambiguity #3
+(x, ::MutableArithmetics.Zero) in MutableArithmetics at C:\Users\Andreas\.julia\packages\MutableArithmetics\Lnlkl\src\rewrite.jl:62    
+(p::P, c::S) where {T, X, P<:Polynomials.AbstractPolynomial{T, X}, S} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\common.jl:848

Possible fix, define
  +(::P, ::MutableArithmetics.Zero) where {T, X, P<:Polynomials.AbstractPolynomial{T, X}}

Ambiguity #4
+(p::P, c::T) where {T, P<:(Polynomials.StandardBasisPolynomial{T})} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\polynomials\standard-basis.jl:75
+(p::Polynomials.AbstractPolynomial, q::Polynomials.AbstractRationalFunction) in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\rational-functions\common.jl:299

Possible fix, define
  +(::P, ::T) where {T<:Polynomials.AbstractRationalFunction, P<:(Polynomials.StandardBasisPolynomial{T})}

Ambiguity #5
isapprox(p1::Polynomials.AbstractPolynomial{T}, n::S; rtol, atol) where {T, S} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\common.jl:1078
isapprox(::Any, ::Missing; kwargs...) in Base at missing.jl:91

Possible fix, define
  isapprox(::Polynomials.AbstractPolynomial{T}, ::Missing) where T

Ambiguity #6
scalar_mult(p::P, c::S) where {S, T, X, P<:Polynomials.AbstractPolynomial{T, X}} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\common.jl:935
scalar_mult(c::S, p::P) where {S, T, X, P<:Polynomials.AbstractPolynomial{T, X}} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\common.jl:941

Possible fix, define
  scalar_mult(::S, ::Union{P, S}) where {S<:(Polynomials.AbstractPolynomial), T, S<:(Polynomials.AbstractPolynomial{T}), X, P<:Polynomials.AbstractPolynomial{T, X}}

Ambiguity #7
convert(P::Type{<:Polynomials.ArnoldiFit}, p::Polynomials.ArnoldiFit{var"#64#T", var"#65#X"}) where {var"#64#T", var"#65#X"} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\abstract.jl:84
convert(::Type{P}, p::Polynomials.ArnoldiFit) where P<:Polynomials.AbstractPolynomial in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\polynomials\standard-basis.jl:647

Possible fix, define
  convert(::Type{P}, ::Polynomials.ArnoldiFit{var"#64#T", var"#65#X"}) where {P<:Polynomials.ArnoldiFit, var"#64#T", var"#65#X"<:AbstractMatrix{var"#64#T"}}

Ambiguity #8
(::Base.var"#isapprox##kw")(::Any, ::typeof(isapprox), n::S, p1::Polynomials.AbstractPolynomial{T}) where {T, S} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\common.jl:1088
(::Base.var"#isapprox##kw")(::Any, ::typeof(isapprox), ::Missing, ::Any) in Base at missing.jl:90

Possible fix, define
  (::Base.var"#isapprox##kw")(::Any, ::typeof(isapprox), ::Missing, ::Polynomials.AbstractPolynomial{T}) where T

Ambiguity #9
convert(::Type{P}, q::Polynomials.AbstractPolynomial) where P<:Polynomials.LaurentPolynomial in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\polynomials\LaurentPolynomial.jl:154
convert(::Type{P}, p::Polynomials.ArnoldiFit) where P<:Polynomials.AbstractPolynomial in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\polynomials\standard-basis.jl:647

Possible fix, define
  convert(::Type{P}, ::Polynomials.ArnoldiFit) where P<:Polynomials.LaurentPolynomial

Ambiguity #10
(::Base.var"#isapprox##kw")(::Any, ::typeof(isapprox), p1::Polynomials.AbstractPolynomial{T}, n::S) where {T, S} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\common.jl:1078
(::Base.var"#isapprox##kw")(::Any, ::typeof(isapprox), ::Any, ::Missing) in Base at missing.jl:91

Possible fix, define
  (::Base.var"#isapprox##kw")(::Any, ::typeof(isapprox), ::Polynomials.AbstractPolynomial{T}, ::Missing) where T

Ambiguity #11
/(p::Polynomials.ImmutablePolynomial{T, X, N}, c::S) where {T, X, N, S} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\polynomials\ImmutablePolynomial.jl:206
/(p::Polynomials.AbstractPolynomial, q::PQ) where PQ<:Polynomials.AbstractRationalFunction in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\rational-functions\common.jl:354

Possible fix, define
  /(::Polynomials.ImmutablePolynomial{T, X, N}, ::PQ) where {PQ<:Polynomials.AbstractRationalFunction, T, X, N}

Ambiguity #12
isapprox(n::S, p1::Polynomials.AbstractPolynomial{T}; rtol, atol) where {T, S} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\common.jl:1088
isapprox(::Missing, ::Any; kwargs...) in Base at missing.jl:90

Possible fix, define
  isapprox(::Missing, ::Polynomials.AbstractPolynomial{T}) where T

Test Failed at C:\Users\Andreas\.julia\packages\Aqua\HWLbM\src\ambiguities.jl:117
  Expression: success(pipeline(cmd; stdout = stdout, stderr = stderr))
ERROR: There was an error during testing

I wonder if this is of any relevance for this package.

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