# File lib/bullet/detector/unused_eager_loading.rb, line 27
        def add_eager_loadings(objects, associations)
          return unless Bullet.start?
          return unless Bullet.unused_eager_loading_enable?
          return if objects.map(&:primary_key_value).compact.empty?

          Bullet.debug('Detector::UnusedEagerLoading#add_eager_loadings', "objects: #{objects.map(&:bullet_key).join(', ')}, associations: #{associations}")
          bullet_keys = objects.map(&:bullet_key)

          to_add = []
          to_merge = []
          to_delete = []
          eager_loadings.each do |k, _v|
            key_objects_overlap = k & bullet_keys

            next if key_objects_overlap.empty?

            bullet_keys -= k
            if key_objects_overlap == k
              to_add << [k, associations]
            else
              to_merge << [key_objects_overlap, (eager_loadings[k].dup << associations)]

              keys_without_objects = k - key_objects_overlap
              to_merge << [keys_without_objects, eager_loadings[k]]
              to_delete << k
            end
          end

          to_add.each { |k, val| eager_loadings.add k, val }
          to_merge.each { |k, val| eager_loadings.merge k, val }
          to_delete.each { |k| eager_loadings.delete k }

          eager_loadings.add bullet_keys, associations unless bullet_keys.empty?
        end