Issue #12970 has been updated by Marc-Andre Lafortune. That's not going to cut it... There are many other counter examples.... ``` s = Set.new t = Set.new s << [s] t << [t] s == t # => false ``` or similarly: ``` s = Set.new t = Set.new a = Set.new([s]) b = Set.new([t]) s << a t << b s == t # => false ``` ---------------------------------------- Bug #12970: == Equality of recursive sets fails https://bugs.ruby-lang.org/issues/12970#change-62261 * Author: Kevin de Berk * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: 2.2.5, 2.3.3 * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- Comparing recursive arrays and hashes with equal? contents (save for the recursive element) using == succeeds. However, using == to compare two recursive sets with equal? contents fails. I expect that to succeed. See the attached script. This is my output for 2.2.5 and 2.3.3: ~~~ [1, 2, 3] == [1, 2, 3]? -> true [1, 2, 3, [...]] == [1, 2, 3, [...]]? -> true {:a=>1, :b=>2} == {:a=>1, :b=>2}? -> true {:a=>1, :b=>2, :c=>{...}} == {:a=>1, :b=>2, :c=>{...}}? -> true #<Set:0x00000001f90fc8> == #<Set:0x00000001f90500>? -> true #<Set:0x00000001f92968> == #<Set:0x00000001f91478>? -> false ~~~ ---Files-------------------------------- recursive_set_comparison.rb (871 Bytes) fix_recursive_sets.patch (2.39 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>