def _get_macro_edge_reversal_conflicts_with_existing_descriptor(
    reverse_base_class_name, reverse_target_class_name, existing_descriptor
):
    """Return a (possibly empty) list of reversal conflicts relative to an existing macro edge."""
    errors = []
    if reverse_base_class_name != existing_descriptor.base_class_name:
        errors.append(
            "change your macro edge's target class to {}".format(
                existing_descriptor.base_class_name
            )
        )

    if reverse_target_class_name != existing_descriptor.target_class_name:
        errors.append(
            "define your macro edge on class {} instead".format(
                existing_descriptor.target_class_name
            )
        )

    return errors