@classmethod
def replace_expression(cls, node, fake_tree, insert_point):
    """
        Inserts `node` as a new like with a fake path reference.
        Then, replaces the first child of the insert_point
        with this path reference.
        """
    line = insert_point.line()
    child_node = None
    if node.service is not None:
        child_node = node.service
    elif node.call_expression is not None:
        assert node.call_expression is not None
        child_node = node.call_expression
    else:
        assert node.mutation is not None
        child_node = node.mutation
    fake_path = fake_tree.add_assignment(child_node, original_line=line)
    insert_point.replace(0, fake_path.child(0))
