def METHOD_NAME(self) -> List[Output]:
    results = []
    compilation_unit = self.compilation_unit
    all_contracts = compilation_unit.contracts
    all_contracts_name = [c.name for c in all_contracts]
    contracts_name_reused = {
        contract for contract in all_contracts_name if all_contracts_name.count(contract) > 1
    }
    names_reused = {
        name: compilation_unit.get_contract_from_name(name) for name in contracts_name_reused
    }
    # First show the contracts that we know are missing
    incorrectly_constructed = [
        contract
        for contract in compilation_unit.contracts
        if contract.is_incorrectly_constructed
    ]
    inheritance_corrupted = defaultdict(list)
    for contract in incorrectly_constructed:
        for father in contract.inheritance:
            inheritance_corrupted[father.name].append(contract)
    for contract_name, files in names_reused.items():
        info: DETECTOR_INFO = [contract_name, " is re-used:\n"]
        for file in files:
            if file is None:
                info += ["\t- In an file not found, most likely in\n"]
            else:
                info += ["\t- ", file, "\n"]
        if contract_name in inheritance_corrupted:
            info += ["\tAs a result, the inherited contracts are not correctly analyzed:\n"]
        for corrupted in inheritance_corrupted[contract_name]:
            info += ["\t\t- ", corrupted, "\n"]
        res = self.generate_result(info)
        results.append(res)
    # Then show the contracts for which one of the father was not found
    # Here we are not able to know
    most_base_with_missing_inheritance = _find_missing_inheritance(compilation_unit)
    for b in most_base_with_missing_inheritance:
        info = [b, " inherits from a contract for which the name is reused.\n"]
        if b.inheritance:
            info += ["\t- Slither could not determine which contract has a duplicate name:\n"]
            for inheritance in b.inheritance:
                info += ["\t\t-", inheritance, "\n"]
            info += ["\t- Check if:\n"]
            info += ["\t\t- A inherited contract is missing from this list,\n"]
            info += ["\t\t- The contract are imported from the correct files.\n"]
        if b.derived_contracts:
            info += [f"\t- This issue impacts the contracts inheriting from {b.name}:\n"]
            for derived in b.derived_contracts:
                info += ["\t\t-", derived, "\n"]
        res = self.generate_result(info)
        results.append(res)
    return results