-
Notifications
You must be signed in to change notification settings - Fork 94
Closed
Labels
Description
With the recent changes made to CleverDict
, iterating on such with abstract keys and/or values leads to an assertion error due to the code shown below (after deletion occurs thus switching to the OrderedDict
):
return el::Pair{K, V}, State(i) |
Here is a simple contrived example:
using MathOptInterface
const MOIUC = MathOptInterface.Utilities.CleverDicts
data = MOIUC.CleverDict{MOI.VariableIndex, Number}()
new_key1 = MOIUC.add_item(data, 42.42)
new_key2 = MOIUC.add_item(data, 42.42)
delete!(data, new_key2)
for (k, v) in data
println(v)
end
ERROR: TypeError: in typeassert, expected Pair{MathOptInterface.VariableIndex,Number}, got Pair{MathOptInterface.VariableIndex,Float64}
Stacktrace:
[1] iterate(::MathOptInterface.Utilities.CleverDicts.CleverDict{MathOptInterface.VariableIndex,Number,typeof(MathOptInterface.Utilities.CleverDicts.key_to_index),getfield(MathOptInterface.Utilities.CleverDicts, Symbol("##1#2")){MathOptInterface.VariableIndex}}) at my_path\.julia\packages\MathOptInterface\R1y80\src\Utilities\CleverDicts.jl:291
[2] top-level scope at .\REPL[37]:1