def _lower_non_existent_context_field_filters(match_traversals, visitor_fn):
    """Return new match traversals, lowering filters involving non-existent ContextFields.

    Expressions involving non-existent ContextFields are evaluated to TrueLiteral.
    BinaryCompositions, where one of the operands is lowered to a TrueLiteral,
    are lowered appropriately based on the present operator (u'||' and u'&&' are affected).
    TernaryConditionals, where the predicate is lowered to a TrueLiteral,
    are replaced by their if_true predicate.
    The `visitor_fn` implements these behaviors (see `_update_context_field_expression`).

    Args:
        match_traversals: list of match traversal enitities to be lowered
        visitor_fn: visit_and_update function for lowering expressions in given match traversal

    Returns:
        new list of match_traversals, with all filter expressions lowered
    """
    new_match_traversals = []
    for match_traversal in match_traversals:
        new_match_traversal = []
        for step in match_traversal:
            if step.where_block is not None:
                new_filter = step.where_block.visit_and_update_expressions(visitor_fn)
                if new_filter.predicate == TrueLiteral:
                    new_filter = None

                new_step = step._replace(where_block=new_filter)
            else:
                new_step = step

            new_match_traversal.append(new_step)
        new_match_traversals.append(new_match_traversal)

    return new_match_traversals
Return new match traversals, lowering filters involving non-existent ContextFields.

    Expressions involving non-existent ContextFields are evaluated to TrueLiteral.
    BinaryCompositions, where one of the operands is lowered to a TrueLiteral,
    are lowered appropriately based on the present operator (u'||' and u'&&' are affected).
    TernaryConditionals, where the predicate is lowered to a TrueLiteral,
    are replaced by their if_true predicate.
    The `visitor_fn` implements these behaviors (see `_update_context_field_expression`).

    Args:
        match_traversals: list of match traversal enitities to be lowered
        visitor_fn: visit_and_update function for lowering expressions in given match traversal

    Returns:
        new list of match_traversals, with all filter expressions lowered