def METHOD_NAME(
    self,
    it: Iterator[str],
    line: str
) -> Tuple[List[Report], str]:
    """ Parse the given line. """
    match = self.message_line_re.match(line)
    if match is None:
        return [], next(it)
    checker_names = match.group('checker').strip().split(",")
    report = Report(
        get_or_create_file(
            os.path.abspath(match.group('path')), self._file_cache),
        int(match.group('line')),
        int(match.group('column')),
        match.group('message').strip(),
        checker_names[0],
        bug_path_events=[])
    try:
        line = next(it)
        line = self._parse_code(it, line)
        line = self._parse_fixits(report, it, line)
        line = self._parse_notes(report, it, line)
    except StopIteration:
        line = ''
    finally:
        report.bug_path_events.append(BugPathEvent(
            report.message,
            report.file,
            report.line,
            report.column))
        # When a checker name and the alias of this checker is turned on,
        # Clang Tidy (>v11) will generate only one report where the checker
        # names are concatenated with ',' mark. With this we will generate
        # multiple reports for each checker name / alias.
        reports = []
        for checker_name in checker_names:
            r = deepcopy(report)
            r.checker_name = checker_name
            r.category = self._get_category(checker_name)
            reports.append(r)
        return reports, line