Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Some ambiguities found with Aqua

Open
#435 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
30/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
julia
Domain
testing

Research direction

Reproduce the report with Aqua.test_ambiguities(Polynomials, recursive=false), then inspect the reported methods in common.jl, factored_polynomial.jl, ChebyshevT.jl, standard-basis.jl, abstract.jl, ImmutablePolynomial.jl, and rational-functions/common.jl. Compare the ambiguity results with the package's intended dispatch behavior. Done means determining whether these ambiguities are relevant to Polynomials and documenting the conclusion or a focused resolution.

Written by the indexing model from the issue text.

Description

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.

Dominant language
Julia
Stars
321
Forks
81
Avg merge
10h 1m
Merged PRs (30d)
5

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from JuliaMath/Polynomials.jl

All issues in JuliaMath/Polynomials.jl

Similar issues

More Julia issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.