diff --git a/src/ordered_set.jl b/src/ordered_set.jl index 34609e9..230ede1 100644 --- a/src/ordered_set.jl +++ b/src/ordered_set.jl @@ -87,7 +87,11 @@ end function hash(s::OrderedSet, h::UInt) h = hash(orderedset_seed, h) s.dict.ndel > 0 && rehash!(s.dict) - hash(s.dict.keys, h) + h_2 = UInt(0) + for k in s.dict.keys + h_2 ⊻= hash(k, h) + end + h_2 end # Deprecated functionality, see diff --git a/test/test_ordered_set.jl b/test/test_ordered_set.jl index d051a46..e76000e 100644 --- a/test/test_ordered_set.jl +++ b/test/test_ordered_set.jl @@ -21,7 +21,7 @@ using OrderedCollections, Test s1 = OrderedSet{String}(["bar", "foo"]) s2 = OrderedSet{String}(["foo", "bar"]) s3 = OrderedSet{String}(["baz"]) - @test hash(s1) != hash(s2) + @test hash(s1) == hash(s2) @test hash(s1) != hash(s3) end