@@ -847,7 +847,7 @@ impl PyType {
847
847
848
848
if let Some ( init_subclass) = typ. get_super_attr ( identifier ! ( vm, __init_subclass__) ) {
849
849
let init_subclass = vm
850
- . call_get_descriptor_specific ( init_subclass. clone ( ) , None , Some ( typ. clone ( ) . into ( ) ) )
850
+ . call_get_descriptor_specific ( & init_subclass, None , Some ( typ. clone ( ) . into ( ) ) )
851
851
. unwrap_or ( Ok ( init_subclass) ) ?;
852
852
init_subclass. call ( kwargs, vm) ?;
853
853
} ;
@@ -1004,7 +1004,7 @@ impl GetAttr for PyType {
1004
1004
let descr_get = attr_class. mro_find_map ( |cls| cls. slots . descr_get . load ( ) ) ;
1005
1005
if let Some ( descr_get) = descr_get {
1006
1006
let mcl = mcl. to_owned ( ) . into ( ) ;
1007
- return descr_get ( attr. clone ( ) , Some ( zelf. to_owned ( ) . into ( ) ) , Some ( mcl) , vm) ;
1007
+ return descr_get ( attr, Some ( zelf. to_owned ( ) . into ( ) ) , Some ( mcl) , vm) ;
1008
1008
}
1009
1009
}
1010
1010
}
@@ -1014,14 +1014,14 @@ impl GetAttr for PyType {
1014
1014
if let Some ( ref attr) = zelf_attr {
1015
1015
let descr_get = attr. class ( ) . mro_find_map ( |cls| cls. slots . descr_get . load ( ) ) ;
1016
1016
if let Some ( descr_get) = descr_get {
1017
- return descr_get ( attr. clone ( ) , None , Some ( zelf. to_owned ( ) . into ( ) ) , vm) ;
1017
+ return descr_get ( attr, None , Some ( zelf. to_owned ( ) . into ( ) ) , vm) ;
1018
1018
}
1019
1019
}
1020
1020
1021
1021
if let Some ( cls_attr) = zelf_attr {
1022
1022
Ok ( cls_attr)
1023
1023
} else if let Some ( attr) = mcl_attr {
1024
- vm. call_if_get_descriptor ( attr, zelf. to_owned ( ) . into ( ) )
1024
+ vm. call_if_get_descriptor ( & attr, zelf. to_owned ( ) . into ( ) )
1025
1025
} else {
1026
1026
return Err ( attribute_error ( zelf, name_str. as_str ( ) , vm) ) ;
1027
1027
}
@@ -1040,7 +1040,7 @@ impl SetAttr for PyType {
1040
1040
if let Some ( attr) = zelf. get_class_attr ( attr_name) {
1041
1041
let descr_set = attr. class ( ) . mro_find_map ( |cls| cls. slots . descr_set . load ( ) ) ;
1042
1042
if let Some ( descriptor) = descr_set {
1043
- return descriptor ( attr, zelf. to_owned ( ) . into ( ) , value, vm) ;
1043
+ return descriptor ( & attr, zelf. to_owned ( ) . into ( ) , value, vm) ;
1044
1044
}
1045
1045
}
1046
1046
let assign = value. is_assign ( ) ;
@@ -1137,10 +1137,10 @@ fn find_base_dict_descr(cls: &Py<PyType>, vm: &VirtualMachine) -> Option<PyObjec
1137
1137
fn subtype_get_dict ( obj : PyObjectRef , vm : & VirtualMachine ) -> PyResult {
1138
1138
// TODO: obj.class().as_pyref() need to be supported
1139
1139
let ret = match find_base_dict_descr ( obj. class ( ) , vm) {
1140
- Some ( descr) => vm. call_get_descriptor ( descr, obj) . unwrap_or_else ( |obj | {
1140
+ Some ( descr) => vm. call_get_descriptor ( & descr, obj) . unwrap_or_else ( || {
1141
1141
Err ( vm. new_type_error ( format ! (
1142
1142
"this __dict__ descriptor does not support '{}' objects" ,
1143
- obj . class( )
1143
+ descr . class( )
1144
1144
) ) )
1145
1145
} ) ?,
1146
1146
None => object:: object_get_dict ( obj, vm) ?. into ( ) ,
@@ -1161,7 +1161,7 @@ fn subtype_set_dict(obj: PyObjectRef, value: PyObjectRef, vm: &VirtualMachine) -
1161
1161
cls. name( )
1162
1162
) )
1163
1163
} ) ?;
1164
- descr_set ( descr, obj, PySetterValue :: Assign ( value) , vm)
1164
+ descr_set ( & descr, obj, PySetterValue :: Assign ( value) , vm)
1165
1165
}
1166
1166
None => {
1167
1167
object:: object_set_dict ( obj, value. try_into_value ( vm) ?, vm) ?;
0 commit comments