AbstractAlgebra.jl
AbstractAlgebra.jl copied to clipboard
Ambiguities in AbstractAlgebra
Enabling the ambiguity report in test/Aqua.jl currently reports 622 ambiguities (with Julia 1.9). 587 of these are du to rand
(see https://github.com/Nemocas/AbstractAlgebra.jl/issues/1388), which leaves 35.
Most of these seem to be some corner-cases regarding RingElement
together with ad-hoc methods for Integer
or Rational
.
julia> Aqua.test_ambiguities(AbstractAlgebra; exclude=[rand])
35 ambiguities found
Ambiguity #1
(a::AbstractAlgebra.Generic.PolyRing{T})(b::Union{AbstractFloat, Integer, Rational}) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/Poly.jl:349
(a::AbstractAlgebra.Generic.PolyRing{T})(b::T) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/Poly.jl:355
Possible fix, define
(::AbstractAlgebra.Generic.PolyRing{T})(::T) where T<:Union{AbstractFloat, Integer, Rational}
Ambiguity #2
(a::AbstractAlgebra.Generic.FracField{T})(b::T, c::T) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/Fraction.jl:84
(a::AbstractAlgebra.Generic.FracField{T})(b::Union{AbstractFloat, Integer, Rational}, c::T) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/Fraction.jl:120
Possible fix, define
(::AbstractAlgebra.Generic.FracField{T})(::T, ::T) where T<:Union{AbstractFloat, Integer, Rational}
Ambiguity #3
valuation(z::AbstractAlgebra.FracElem{T}, p) where T @ AbstractAlgebra ~/code/AbstractAlgebra.jl/src/Fraction.jl:757
valuation(a::T, b::T) where T<:Union{Number, RingElement} @ AbstractAlgebra ~/code/AbstractAlgebra.jl/src/algorithms/GenericFunctions.jl:191
Possible fix, define
valuation(::T, ::T) where T<:(AbstractAlgebra.FracElem)
Ambiguity #4
remove(z::AbstractAlgebra.FracElem{T}, p) where T @ AbstractAlgebra ~/code/AbstractAlgebra.jl/src/Fraction.jl:744
remove(a::T, b::T) where T<:Union{Number, RingElement} @ AbstractAlgebra ~/code/AbstractAlgebra.jl/src/algorithms/GenericFunctions.jl:168
Possible fix, define
remove(::T, ::T) where T<:(AbstractAlgebra.FracElem)
Ambiguity #5
(a::AbstractAlgebra.Generic.FracField{T})(b::T, c::T) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/Fraction.jl:84
(a::AbstractAlgebra.Generic.FracField{T})(b::T, c::Union{AbstractFloat, Integer, Rational}) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/Fraction.jl:105
Possible fix, define
(::AbstractAlgebra.Generic.FracField{T})(::T, ::T) where T<:Union{AbstractFloat, Integer, Rational}
Ambiguity #6
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::T, c::T) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:565
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::T, c::Union{Integer, Rational}) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:578
Possible fix, define
(::AbstractAlgebra.Generic.TotFracRing{T})(::T, ::T) where T<:Union{Integer, Rational}
Ambiguity #7
(a::AbstractAlgebra.Generic.FracField{T})(b::T) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/Fraction.jl:77
(a::AbstractAlgebra.Generic.FracField{T})(b::Union{AbstractFloat, Integer}) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/Fraction.jl:140
Possible fix, define
(::AbstractAlgebra.Generic.FracField{T})(::T) where T<:Union{AbstractFloat, Integer}
Ambiguity #8
promote(x::AbstractAlgebra.MatrixElem{S}, y::AbstractAlgebra.MatrixElem{T}) where {S<:Union{NCRingElem, RingElement}, T<:Union{NCRingElem, RingElement}} @ AbstractAlgebra ~/code/AbstractAlgebra.jl/src/Matrix.jl:964
promote(x::S, y::AbstractAlgebra.MatElem{T}) where {S<:Union{NCRingElem, RingElement}, T<:Union{NCRingElem, RingElement}} @ AbstractAlgebra ~/code/AbstractAlgebra.jl/src/Matrix.jl:1019
Possible fix, define
promote(::S, ::AbstractAlgebra.MatElem{T}) where {S<:(AbstractAlgebra.MatAlgElem{S} where S<:Union{AbstractAlgebra.NCRingElem, AbstractAlgebra.RingElement}), T<:Union{AbstractAlgebra.NCRingElem, AbstractAlgebra.RingElement}}
Ambiguity #9
kwcall(::Any, ::typeof(AbstractAlgebra.divexact), a::Union{Integer, Rational}, b::AbstractAlgebra.Generic.FunctionFieldElem) @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/FunctionField.jl:1024
kwcall(::Any, ::typeof(AbstractAlgebra.divexact), a::T, b::AbstractAlgebra.Generic.FunctionFieldElem{T}) where T<:FieldElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/FunctionField.jl:1029
Possible fix, define
kwcall(::Any, ::typeof(AbstractAlgebra.divexact), ::T, ::AbstractAlgebra.Generic.FunctionFieldElem{T}) where T<:Rational
Ambiguity #10
(a::AbstractAlgebra.Generic.SparsePolyRing{T})(b::Union{AbstractFloat, Integer, Rational}) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/SparsePoly.jl:1663
(a::AbstractAlgebra.Generic.SparsePolyRing{T})(b::T) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/SparsePoly.jl:1669
Possible fix, define
(::AbstractAlgebra.Generic.SparsePolyRing{T})(::T) where T<:Union{AbstractFloat, Integer, Rational}
Ambiguity #11
(a::AbstractAlgebra.Generic.FracField{T})(b::T) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/Fraction.jl:77
(a::AbstractAlgebra.Generic.FracField{T})(b::Rational) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/Fraction.jl:146
Possible fix, define
(::AbstractAlgebra.Generic.FracField{T})(::T) where T<:Rational
Ambiguity #12
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::Union{Integer, Rational}, c::T, check) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:582
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::Integer, c::Integer, check) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:590
Possible fix, define
(::AbstractAlgebra.Generic.TotFracRing{T})(::Integer, ::T, ::Any) where T<:Integer
Ambiguity #13
(a::AbstractAlgebra.Generic.FracField{T})(b::T, c::Union{AbstractFloat, Integer, Rational}) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/Fraction.jl:105
(a::AbstractAlgebra.Generic.FracField{T})(b::Integer, c::Integer) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/Fraction.jl:153
Possible fix, define
(::AbstractAlgebra.Generic.FracField{T})(::T, ::Integer) where T<:Integer
Ambiguity #14
(a::AbstractAlgebra.Generic.FracField{T})(b::T, c::Union{AbstractFloat, Integer, Rational}) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/Fraction.jl:105
(a::AbstractAlgebra.Generic.FracField{T})(b::Union{AbstractFloat, Integer, Rational}, c::T) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/Fraction.jl:120
Possible fix, define
(::AbstractAlgebra.Generic.FracField{T})(::T, ::T) where T<:Union{AbstractFloat, Integer, Rational}
Ambiguity #15
(a::AbstractAlgebra.Generic.FracField{T})(b::Union{AbstractFloat, Integer, Rational}, c::T) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/Fraction.jl:120
(a::AbstractAlgebra.Generic.FracField{T})(b::Integer, c::Integer) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/Fraction.jl:153
Possible fix, define
(::AbstractAlgebra.Generic.FracField{T})(::Integer, ::T) where T<:Integer
Ambiguity #16
(a::AbstractAlgebra.Generic.FracField{T})(b::T, c::T) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/Fraction.jl:84
(a::AbstractAlgebra.Generic.FracField{T})(b::Integer, c::Integer) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/Fraction.jl:153
Possible fix, define
(::AbstractAlgebra.Generic.FracField{T})(::T, ::T) where T<:Integer
Ambiguity #17
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::T, c::Union{Integer, Rational}, check) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:578
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::Integer, c::Integer, check) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:590
Possible fix, define
(::AbstractAlgebra.Generic.TotFracRing{T})(::T, ::Integer, ::Any) where T<:Integer
Ambiguity #18
promote_rule(::Type{T}, ::Type{T}) where T<:Union{NCRingElem, RingElement} @ AbstractAlgebra ~/code/AbstractAlgebra.jl/src/NCRings.jl:28
promote_rule(::Type{AbstractAlgebra.Generic.LaurentMPolyWrap{T, PE, LR}}, ::Type{U}) where {T, PE, LR, U} @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/LaurentMPoly.jl:598
Possible fix, define
promote_rule(::Type{AbstractAlgebra.Generic.LaurentMPolyWrap{T, PE, LR}}, ::Type{AbstractAlgebra.Generic.LaurentMPolyWrap{T, PE, LR}}) where {T, PE, LR}
Ambiguity #19
evaluate(f::AbstractAlgebra.FracElem{T}, v::U) where {T<:PolyRingElem, U<:Integer} @ AbstractAlgebra ~/code/AbstractAlgebra.jl/src/Fraction.jl:625
evaluate(f::AbstractAlgebra.Generic.FactoredFrac{T}, v::U) where {T<:RingElement, U<:RingElement} @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/FactoredFraction.jl:430
Possible fix, define
evaluate(::AbstractAlgebra.Generic.FactoredFrac{T}, ::U) where {T<:AbstractAlgebra.PolyRingElem, U<:Integer}
Ambiguity #20
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::T, c::T, check) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:565
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::T, c::Union{Integer, Rational}, check) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:578
Possible fix, define
(::AbstractAlgebra.Generic.TotFracRing{T})(::T, ::T, ::Any) where T<:Union{Integer, Rational}
Ambiguity #21
(R::AbstractAlgebra.Generic.FunctionField{T})(a::T) where T<:FieldElem @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/FunctionField.jl:1267
(R::AbstractAlgebra.Generic.FunctionField{T})(a::AbstractAlgebra.Generic.FunctionFieldElem) where T<:FieldElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/FunctionField.jl:1281
Possible fix, define
(::AbstractAlgebra.Generic.FunctionField{T})(::T) where T<:AbstractAlgebra.Generic.FunctionFieldElem
Ambiguity #22
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::T, c::T) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:565
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::Union{Integer, Rational}, c::T) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:582
Possible fix, define
(::AbstractAlgebra.Generic.TotFracRing{T})(::T, ::T) where T<:Union{Integer, Rational}
Ambiguity #23
promote_rule(::Type{T}, ::Type{T}) where T<:Union{NCRingElem, RingElement} @ AbstractAlgebra ~/code/AbstractAlgebra.jl/src/NCRings.jl:28
promote_rule(::Type{AbstractAlgebra.Generic.LaurentPolyWrap{S, T, V}}, ::Type{U}) where {S, T, U, V} @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/LaurentPoly.jl:466
Possible fix, define
promote_rule(::Type{AbstractAlgebra.Generic.LaurentPolyWrap{S, T, V}}, ::Type{AbstractAlgebra.Generic.LaurentPolyWrap{S, T, V}}) where {S, T, V}
Ambiguity #24
*(a::AbstractAlgebra.Generic.AbsMSeries, b::AbstractAlgebra.Generic.AbsMSeries) @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/AbsMSeries.jl:394
*(a::T, b::AbstractAlgebra.Generic.AbsMSeries{T}) where T<:RingElem @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/AbsMSeries.jl:414
Possible fix, define
*(::T, ::AbstractAlgebra.Generic.AbsMSeries{T}) where T<:AbstractAlgebra.Generic.AbsMSeries
Ambiguity #25
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::T, c::T) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:565
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::Integer, c::Integer) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:590
Possible fix, define
(::AbstractAlgebra.Generic.TotFracRing{T})(::T, ::T) where T<:Integer
Ambiguity #26
divexact(a::Union{Integer, Rational}, b::AbstractAlgebra.Generic.FunctionFieldElem; check) @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/FunctionField.jl:1024
divexact(a::T, b::AbstractAlgebra.Generic.FunctionFieldElem{T}; check) where T<:FieldElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/FunctionField.jl:1029
Possible fix, define
divexact(::T, ::AbstractAlgebra.Generic.FunctionFieldElem{T}) where T<:Rational
Ambiguity #27
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::T, c::Union{Integer, Rational}) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:578
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::Union{Integer, Rational}, c::T) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:582
Possible fix, define
(::AbstractAlgebra.Generic.TotFracRing{T})(::T, ::T) where T<:Union{Integer, Rational}
Ambiguity #28
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::T, c::T, check) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:565
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::Integer, c::Integer, check) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:590
Possible fix, define
(::AbstractAlgebra.Generic.TotFracRing{T})(::T, ::T, ::Any) where T<:Integer
Ambiguity #29
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::T, c::T, check) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:565
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::Union{Integer, Rational}, c::T, check) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:582
Possible fix, define
(::AbstractAlgebra.Generic.TotFracRing{T})(::T, ::T, ::Any) where T<:Union{Integer, Rational}
Ambiguity #30
promote(x::AbstractAlgebra.MatrixElem{S}, y::AbstractAlgebra.MatrixElem{T}) where {S<:Union{NCRingElem, RingElement}, T<:Union{NCRingElem, RingElement}} @ AbstractAlgebra ~/code/AbstractAlgebra.jl/src/Matrix.jl:964
promote(x::AbstractAlgebra.MatElem{S}, y::T) where {S<:Union{NCRingElem, RingElement}, T<:Union{NCRingElem, RingElement}} @ AbstractAlgebra ~/code/AbstractAlgebra.jl/src/Matrix.jl:1010
Possible fix, define
promote(::AbstractAlgebra.MatElem{S}, ::T) where {S<:Union{AbstractAlgebra.NCRingElem, AbstractAlgebra.RingElement}, T<:(AbstractAlgebra.MatAlgElem{T} where T<:Union{AbstractAlgebra.NCRingElem, AbstractAlgebra.RingElement})}
Ambiguity #31
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::Union{Integer, Rational}, c::T) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:582
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::Integer, c::Integer) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:590
Possible fix, define
(::AbstractAlgebra.Generic.TotFracRing{T})(::Integer, ::T) where T<:Integer
Ambiguity #32
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::T, c::Union{Integer, Rational}) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:578
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::Integer, c::Integer) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:590
Possible fix, define
(::AbstractAlgebra.Generic.TotFracRing{T})(::T, ::Integer) where T<:Integer
Ambiguity #33
*(a::AbstractAlgebra.Generic.AbsMSeries, b::AbstractAlgebra.Generic.AbsMSeries) @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/AbsMSeries.jl:394
*(a::AbstractAlgebra.Generic.AbsMSeries{T}, b::T) where T<:RingElem @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/AbsMSeries.jl:424
Possible fix, define
*(::AbstractAlgebra.Generic.AbsMSeries{T}, ::T) where T<:AbstractAlgebra.Generic.AbsMSeries
Ambiguity #34
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::T) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:557
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::Union{Integer, Rational}) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:586
Possible fix, define
(::AbstractAlgebra.Generic.TotFracRing{T})(::T) where T<:Union{Integer, Rational}
Ambiguity #35
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::T, c::Union{Integer, Rational}, check) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:578
(a::AbstractAlgebra.Generic.TotFracRing{T})(b::Union{Integer, Rational}, c::T, check) where T<:RingElement @ AbstractAlgebra.Generic ~/code/AbstractAlgebra.jl/src/generic/TotalFraction.jl:582
Possible fix, define
(::AbstractAlgebra.Generic.TotFracRing{T})(::T, ::T, ::Any) where T<:Union{Integer, Rational}
Test Failed at /home/lgoe/.julia/packages/Aqua/BhBic/src/ambiguities.jl:123
Expression: success(pipeline(cmd; stdout = stdout, stderr = stderr))
ERROR: There was an error during testing
To reproduce the above use any Aqua version where (https://github.com/JuliaTesting/Aqua.jl/pull/142) is available, i.e. master
or v0.6.4
once it is released.