code: def _compute_symbolic_link_mapping(
      directory: str, extensions: Iterable[str]
  ) -> Dict[str, str]:
      
      symbolic_links = {}
      try:
          for symbolic_link in find_paths_with_extensions(directory, extensions):
              symbolic_links[os.path.realpath(symbolic_link)] = symbolic_link
      except subprocess.CalledProcessError as error:
          LOG.warning(
              "Exception encountered trying to find source files "
              "in the analysis directory: `%s`",
              error,
          )
          LOG.warning("Starting with an empty set of tracked files.")
      return symbolic_links
docs: Given a shared analysis directory, produce a mapping from actual source files
          to files contained within this directory. Only includes files which have
          one of the provided extensions.
  
          Watchman watches actual source files, so when a change is detected to a
          file, this mapping can be used to identify what file changed from Pyre's
          perspective.