@@ -124,7 +124,7 @@ impl Scope {
124
124
pub trait NameProtocol {
125
125
fn load_name ( & self , vm : & VirtualMachine , name : & str ) -> Option < PyObjectRef > ;
126
126
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 ;
128
128
fn load_cell ( & self , vm : & VirtualMachine , name : & str ) -> Option < PyObjectRef > ;
129
129
fn store_cell ( & self , vm : & VirtualMachine , name : & str , value : PyObjectRef ) ;
130
130
fn load_global ( & self , vm : & VirtualMachine , name : & str ) -> Option < PyObjectRef > ;
@@ -169,8 +169,8 @@ impl NameProtocol for Scope {
169
169
self . get_locals ( ) . set_item ( key, value, vm) . unwrap ( ) ;
170
170
}
171
171
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)
174
174
}
175
175
176
176
fn load_global ( & self , vm : & VirtualMachine , name : & str ) -> Option < PyObjectRef > {
@@ -1071,8 +1071,10 @@ impl Frame {
1071
1071
}
1072
1072
1073
1073
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
+ }
1076
1078
}
1077
1079
1078
1080
fn load_name (
0 commit comments