def _scatter(operand, scatter_indices, updates, *, update_jaxpr, update_consts, dimension_numbers, indices_are_sorted, unique_indices, _in_avals: Sequence[core.AbstractValue], _out_aval: core.AbstractValue):
    del unique_indices, _in_avals
    assert (len(update_consts) == 0), 'Update computation cannot have constants'
    if (not _enable_xla):
        raise _xla_disabled_error('scatter')
    proto = _scatter_dimensions_proto(scatter_indices.shape, dimension_numbers)

    def update_computation(arg1: TfVal, arg2: TfVal) -> TfVal:
        closed_jaxpr = core.ClosedJaxpr(update_jaxpr, update_consts)
        (res,) = _interpret_jaxpr(closed_jaxpr, arg1, arg2)
        return res
    o_spec = tf.TensorSpec((), dtype=operand.dtype)
    xla_update_computation = tf.function(update_computation, autograph=False).get_concrete_function(o_spec, o_spec)
    out = tfxla.scatter(operand, scatter_indices, updates, xla_update_computation, proto, indices_are_sorted=indices_are_sorted)
    out.set_shape(_aval_to_tf_shape(_out_aval))
    return out
def _scatter(operand, scatter_indices, updates, *, update_jaxpr, update_consts, dimension_numbers, indices_are_sorted, unique_indices, _in_avals: Sequence[core.AbstractValue], _out_aval: core.AbstractValue):
    del unique_indices, _in_avals
    assert (len(update_consts) == 0), 'Update computation cannot have constants'
    if (not _enable_xla):
        raise _xla_disabled_error('scatter')
    proto = _scatter_dimensions_proto(scatter_indices.shape, dimension_numbers)

    def update_computation(arg1: TfVal, arg2: TfVal) -> TfVal:
        closed_jaxpr = core.ClosedJaxpr(update_jaxpr, update_consts)
        (res,) = _interpret_jaxpr(closed_jaxpr, arg1, arg2)
        return res
    o_spec = tf.TensorSpec((), dtype=operand.dtype)
    xla_update_computation = tf.function(update_computation, autograph=False).get_concrete_function(o_spec, o_spec)
    out = tfxla.scatter(operand, scatter_indices, updates, xla_update_computation, proto, indices_are_sorted=indices_are_sorted)
    out.set_shape(_aval_to_tf_shape(_out_aval))
    return out