mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Refactor #flatten_merge
Not to unnecessary recursive search.
This commit is contained in:
+2
-2
@@ -83,19 +83,19 @@ class Set
|
||||
# end
|
||||
#
|
||||
def flatten_merge(set, seen = Set.new)
|
||||
seen.add(set.object_id)
|
||||
set.each { |e|
|
||||
if e.is_a?(Set)
|
||||
if seen.include?(e_id = e.object_id)
|
||||
raise ArgumentError, "tried to flatten recursive Set"
|
||||
end
|
||||
|
||||
seen.add(e_id)
|
||||
flatten_merge(e, seen)
|
||||
seen.delete(e_id)
|
||||
else
|
||||
add(e)
|
||||
end
|
||||
}
|
||||
seen.delete(set.object_id)
|
||||
|
||||
self
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user