I have a problem since a month of updating the function field 'result' that uses a different field function 'field2' (updated without problems) ?
_name = 'x'
'field1': fields.integer(readonly=True),
'field2': fields.function(count_x_id_in_y, type='integer',
          store={'y': (get_x_id_from_y, ['x_id'], 10)}),
'result': fields.function(add, type='integer',
          store={'x': (lambda self, cr, uid, ids, c={}: ids, ['field1','field2'], 10)}),
def add(self, cr, uid, ids, field_name, args, context=None):
    res = {}
    for record in self.browse(cr, uid, ids, context=context):
        res[record.id] =  record.field1 + record.field2
    return res
