code: def merge_tasks(runset_results):
      
      task_list = []
      task_set = set()
      for runset in runset_results:
          index = -1
          currentresult_taskset = set()
          for task in runset.get_tasks():
              if task in currentresult_taskset:
                  logging.warning("Task '%s' is present twice, skipping it.", task[0])
              else:
                  currentresult_taskset.add(task)
                  if task not in task_set:
                      task_list.insert(index+1, task)
                      task_set.add(task)
                      index += 1
                  else:
                      index = task_list.index(task)
  
      merge_task_lists(runset_results, task_list)
docs: This function merges the results of all RunSetResult objects.
      If necessary, it can merge lists of names: [A,C] + [A,B] --> [A,B,C]
      and add dummy elements to the results.
      It also ensures the same order of tasks.