@@ -162,13 +162,13 @@ impl PyBaseObject {
162162 value : PyObjectRef ,
163163 vm : & VirtualMachine ,
164164 ) -> PyResult < ( ) > {
165- generic_setattr ( & obj , name, Some ( value) , vm)
165+ obj . generic_setattr ( name, Some ( value) , vm)
166166 }
167167
168168 /// Implement delattr(self, name).
169169 #[ pymethod]
170170 fn __delattr__ ( obj : PyObjectRef , name : PyStrRef , vm : & VirtualMachine ) -> PyResult < ( ) > {
171- generic_setattr ( & obj , name, None , vm)
171+ obj . generic_setattr ( name, None , vm)
172172 }
173173
174174 #[ pyslot]
@@ -178,7 +178,7 @@ impl PyBaseObject {
178178 value : Option < PyObjectRef > ,
179179 vm : & VirtualMachine ,
180180 ) -> PyResult < ( ) > {
181- generic_setattr ( & * obj , attr_name, value, vm)
181+ obj . generic_setattr ( attr_name, value, vm)
182182 }
183183
184184 /// Return str(self).
@@ -334,48 +334,6 @@ pub fn generic_getattr(obj: PyObjectRef, attr_name: PyStrRef, vm: &VirtualMachin
334334 vm. generic_getattribute ( obj, attr_name)
335335}
336336
337- #[ cfg_attr( feature = "flame-it" , flame) ]
338- pub fn generic_setattr (
339- obj : & PyObject ,
340- attr_name : PyStrRef ,
341- value : Option < PyObjectRef > ,
342- vm : & VirtualMachine ,
343- ) -> PyResult < ( ) > {
344- vm_trace ! ( "object.__setattr__({:?}, {}, {:?})" , obj, attr_name, value) ;
345-
346- if let Some ( attr) = obj. get_class_attr ( attr_name. as_str ( ) ) {
347- let descr_set = attr. class ( ) . mro_find_map ( |cls| cls. slots . descr_set . load ( ) ) ;
348- if let Some ( descriptor) = descr_set {
349- return descriptor ( attr, obj. to_owned ( ) , value, vm) ;
350- }
351- }
352-
353- if let Some ( dict) = obj. dict ( ) {
354- if let Some ( value) = value {
355- dict. set_item ( attr_name, value, vm) ?;
356- } else {
357- dict. del_item ( attr_name. clone ( ) , vm) . map_err ( |e| {
358- if e. fast_isinstance ( & vm. ctx . exceptions . key_error ) {
359- vm. new_attribute_error ( format ! (
360- "'{}' object has no attribute '{}'" ,
361- obj. class( ) . name( ) ,
362- attr_name,
363- ) )
364- } else {
365- e
366- }
367- } ) ?;
368- }
369- Ok ( ( ) )
370- } else {
371- Err ( vm. new_attribute_error ( format ! (
372- "'{}' object has no attribute '{}'" ,
373- obj. class( ) . name( ) ,
374- attr_name,
375- ) ) )
376- }
377- }
378-
379337pub fn init ( ctx : & Context ) {
380338 PyBaseObject :: extend_class ( ctx, & ctx. types . object_type ) ;
381339}
0 commit comments