Impacted versions: all

On the model "ir.model.field" there is a field called "copy" : https://github.com/odoo/odoo/blob/master/odoo/addons/base/models/ir_model.py#L322

This name conflict with the method "copy" that exist browse record
https://github.com/odoo/odoo/blob/master/odoo/models.py#L4203

This make impossible to use the method copy on ir.model.field
And also raise warning when we make an inherits of the class ir.model.field (https://github.com/odoo/odoo/blob/master/odoo/models.py) as the field conflict with the method name

@odony @rco-odoo 

odoo/addons/base/models/ir_model.py
""" Reflect the given field and return its corresponding record. """
        fields_data = self._existing_field_data(field.model_name)
        field_data = fields_data.get(field.name)
        params = self._reflect_field_params(field)
        cr = self.env.cr
        created = False
        if field_data is None:
            
            query_insert(cr, self._table, params)
            record = self.browse(cr.fetchone())
            self.pool.post_init(record.modified, list(params))
            
            fields_data[field.name] = dict(params, id=record.id)
            created = True
        elif any(field_data[key] != val for key, val in params.items()):
            
            query_update(cr, self._table, params, ['model', 'name'])
            record = self.browse(cr.fetchone())
            names = [key for key, val in params.items() if field_data[key] != val]
            self.pool.post_init(record.modified, names)
            
            field_data.update(params)
        else:
            
            record = self.browse(field_data['id'])
        
        module = self._context.get('module')
        if module and (created or module in field._modules):
            model_name = field.model_name.replace('.', '_')