You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Before I forget. Here are the types with missing hash methods (or for which == should be removed). (Courtesy of @lgoettgens (oscar-system/Oscar.jl#2222). Needs julia version 1.10.5:
mod = Hecke
list = map(
filter(names(mod; all=true)) do name
isdefined(mod, name) || return false # remove all wrong exports (see #1964)
T = getfield(mod, name)
T isa DataType || T isa UnionAll || return false # remove all non-types and non-parametric-types
parentmodule(==, (T, T)) == Base && return false # remove everything without custom ==
loc = functionloc(==, (T, T))
endswith(loc[1], "julia/base/Base.jl") && loc[2] == 207 && return false # remove everything without custom ==
T <: AbstractArray && endswith(loc[1], "julia/base/abstractarray.jl") && loc[2] == 3028 && return false # remove AbstractArray subtypes as Base provides both == and hash for them
parentmodule(hash, (T, UInt)) == Base # keep iff there is no custom hash
end,
) do name
T = getfield(mod, name)
loc = functionloc(==, (T, T))
if occursin("mod.jl/", loc[1])
loc_cleaned = loc[1][first(findlast("mod.jl/", loc[1])):end]
elseif occursin("packages/", loc[1])
loc_cleaned = loc[1][(first(findlast("packages/", loc[1])) + length("packages/")):end]
elseif occursin("julia/base/", loc[1])
loc_cleaned = loc[1][first(findlast("julia/base/", loc[1])):end]
else
loc_cleaned = loc[1]
end
name, parentmodule(T), (loc_cleaned, loc[2])
end;
Before I forget. Here are the types with missing
hash
methods (or for which==
should be removed). (Courtesy of @lgoettgens (oscar-system/Oscar.jl#2222). Needs julia version1.10.5:This yields
The text was updated successfully, but these errors were encountered: