JuliaRandom / JuliaRandom/RandomExtensions.jl

A lot of ambiguities due to too general `rand`signatures

Ouverte
#13 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Julia
Étoiles
19
Forks
2
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

We are still using this quite heavily in Oscar land, but after playing around with https://github.com/JuliaTesting/Aqua.jl (which helps detecting method ambiguities), I noticed that RandomExtensions.jl leads to a lot of method ambiguities. For example, the methods
```
rand(X, ::Type{Tuple}, n::Integer)
@ RandomExtensions ~/.julia/packages/RandomExtensions/qAD6J/src/containers.jl:53
rand(X, t::Type{<:Array}, dims::Integer...)
@ RandomExtensions ~/.julia/packages/RandomExtensions/qAD6J/src/containers.jl:106
```
will make the pass-through methods
```
rand(T::MyAbstractType, v...) = rand(GLOBAL_RNG, T, v...)
```
ambiguous for certain input types (note that I cannot pin down the type of `v` directly, since `T` is abstract and there are many possible combinations).

They are usually fine in practice, but it just looks bad. There are so many, that ignoring them might hide real ambiguities.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.