code: def _inject_addresses(self, subjects):
      
      logger.debug('Injecting addresses to %s: %s', self, subjects)
      with self._resolve_context():
        addresses = tuple(subjects)
        thts, = self._scheduler.product_request(TransitiveHydratedTargets,
                                                [BuildFileAddresses(addresses)])
  
      self._index(thts.closure)
  
      yielded_addresses = set()
      for address in subjects:
        if address not in yielded_addresses:
          yielded_addresses.add(address)
          yield address
docs: Injects targets into the graph for each of the given `Address` objects, and then yields them.
  
      TODO: See #5606 about undoing the split between `_inject_addresses` and `_inject_specs`.