@@ -124,7 +124,7 @@ impl Scope {
124124pub trait NameProtocol {
125125 fn load_name ( & self , vm : & VirtualMachine , name : & str ) -> Option < PyObjectRef > ;
126126 fn store_name ( & self , vm : & VirtualMachine , name : & str , value : PyObjectRef ) ;
127- fn delete_name ( & self , vm : & VirtualMachine , name : & str ) ;
127+ fn delete_name ( & self , vm : & VirtualMachine , name : & str ) -> PyResult ;
128128 fn load_cell ( & self , vm : & VirtualMachine , name : & str ) -> Option < PyObjectRef > ;
129129 fn store_cell ( & self , vm : & VirtualMachine , name : & str , value : PyObjectRef ) ;
130130 fn load_global ( & self , vm : & VirtualMachine , name : & str ) -> Option < PyObjectRef > ;
@@ -169,8 +169,8 @@ impl NameProtocol for Scope {
169169 self . get_locals ( ) . set_item ( key, value, vm) . unwrap ( ) ;
170170 }
171171
172- fn delete_name ( & self , vm : & VirtualMachine , key : & str ) {
173- self . get_locals ( ) . del_item ( key, vm) . unwrap ( ) ;
172+ fn delete_name ( & self , vm : & VirtualMachine , key : & str ) -> PyResult {
173+ self . get_locals ( ) . del_item ( key, vm)
174174 }
175175
176176 fn load_global ( & self , vm : & VirtualMachine , name : & str ) -> Option < PyObjectRef > {
@@ -1071,8 +1071,10 @@ impl Frame {
10711071 }
10721072
10731073 fn delete_name ( & self , vm : & VirtualMachine , name : & str ) -> FrameResult {
1074- self . scope . delete_name ( vm, name) ;
1075- Ok ( None )
1074+ match self . scope . delete_name ( vm, name) {
1075+ Ok ( _) => Ok ( None ) ,
1076+ Err ( _) => Err ( vm. new_name_error ( format ! ( "name '{}' is not defined" , name) ) ) ,
1077+ }
10761078 }
10771079
10781080 fn load_name (
0 commit comments