<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def call_next(self, *args, **kwargs) -> t.List[run.RunInfo]: """Call all child extensions with the given arguments. This calls all child extensions and collects the results for our own parent. Use this to control the execution of your nested extensions from your own extension. Returns: :obj:`list` of :obj:`RunInfo`: A list of collected results of our child extensions. """

        all_results = []
        for ext in self.next_extensions:
            LOG.debug("  %s ", ext)
            results = ext(*args, **kwargs)
            LOG.debug("  %s => %s", ext, results)
            if results is None:
                LOG.warning("No result from: %s", ext)
                continue
            result_list = []
            if isinstance(results, c.Iterable):
                result_list.extend(results)
            else:
                result_list.append(results)
            all_results.extend(result_list)

        return all_results