diff --git a/lib/propane/parser/item_set.rb b/lib/propane/parser/item_set.rb index df85c41..12139d6 100644 --- a/lib/propane/parser/item_set.rb +++ b/lib/propane/parser/item_set.rb @@ -112,13 +112,11 @@ class Propane def close! eval_items = @items while eval_items.size > 0 - this_eval_items = eval_items - eval_items = Set.new - this_eval_items.each do |item| - item.closed_items.each do |new_item| - unless @items.include?(new_item) - eval_items << new_item - end + item = eval_items.first + eval_items.delete(item) + item.closed_items.each do |new_item| + unless @items.include?(new_item) + eval_items << new_item end end @items += eval_items