docs: def _merge_tops_same(self, tops):
          '''
          For each saltenv, only consider the top file from that saltenv. All
          sections matching a given saltenv, which appear in a different
          saltenv's top file, will be ignored.
          '''
          top = DefaultOrderedDict(OrderedDict)
          for cenv, ctops in six.iteritems(tops):
              if all([x == {} for x in ctops]):
                  # No top file found in this env, check the default_top
                  default_top = self.opts['default_top']
                  fallback_tops = tops.get(default_top, [])
                  if all([x == {} for x in fallback_tops]):
                      # Nothing in the fallback top file
                      log.error(
                          'The \'%s\' saltenv has no top file, and the fallback '
                          'saltenv specified by default_top (%s) also has no '
                          'top file', cenv, default_top
                      )
                      continue
  
                  for ctop in fallback_tops:
                      for saltenv, targets in six.iteritems(ctop):
                          if saltenv != cenv:
                              continue
                          log.debug(
                              'The \'%s\' saltenv has no top file, using the '
                              'default_top saltenv (%s)', cenv, default_top
                          )
                          for tgt in targets:
                              top[saltenv][tgt] = ctop[saltenv][tgt]
                          break
                      else:
                          log.error(
                              'The \'%s\' saltenv has no top file, and no '
                              'matches were found in the top file for the '
                              'default_top saltenv (%s)', cenv, default_top
                          )
  
                  continue
  
              else:
                  for ctop in ctops:
                      for saltenv, targets in six.iteritems(ctop):
                          if saltenv == 'include':
                              continue
                          elif saltenv != cenv:
                              log.debug(
                                  'Section for saltenv \'%s\' in the \'%s\' '
                                  'saltenv\'s top file will be ignored, as the '
                                  'top_file_merging_strategy is set to \'same\' '
                                  'and the saltenvs do not match',
                                  saltenv, cenv
                              )
                              continue
  
                          try:
                              for tgt in targets:
                                  top[saltenv][tgt] = ctop[saltenv][tgt]
                          except TypeError:
                              raise SaltRenderError('Unable to render top file. No targets found.')
          return top