@@ -117,15 +117,14 @@ impl Scope {
117
117
}
118
118
}
119
119
120
- // TODO: Merge with existing Attribute protocol.
121
- pub trait AttributeProtocol2 {
122
- fn get_attr ( & self , vm : & VirtualMachine , name : & str ) -> Option < PyObjectRef > ;
123
- fn set_attr ( & self , vm : & VirtualMachine , name : & str , value : PyObjectRef ) ;
124
- fn del_attr ( & self , vm : & VirtualMachine , name : & str ) ;
120
+ pub trait NameProtocol {
121
+ fn load_name ( & self , vm : & VirtualMachine , name : & str ) -> Option < PyObjectRef > ;
122
+ fn store_name ( & self , vm : & VirtualMachine , name : & str , value : PyObjectRef ) ;
123
+ fn delete_name ( & self , vm : & VirtualMachine , name : & str ) ;
125
124
}
126
125
127
- impl AttributeProtocol2 for Scope {
128
- fn get_attr ( & self , vm : & VirtualMachine , name : & str ) -> Option < PyObjectRef > {
126
+ impl NameProtocol for Scope {
127
+ fn load_name ( & self , vm : & VirtualMachine , name : & str ) -> Option < PyObjectRef > {
129
128
for dict in self . locals . iter ( ) {
130
129
if let Some ( value) = dict. get_item ( name) {
131
130
return Some ( value) ;
@@ -139,11 +138,11 @@ impl AttributeProtocol2 for Scope {
139
138
vm. builtins . get_item ( name)
140
139
}
141
140
142
- fn set_attr ( & self , vm : & VirtualMachine , key : & str , value : PyObjectRef ) {
141
+ fn store_name ( & self , vm : & VirtualMachine , key : & str , value : PyObjectRef ) {
143
142
self . get_locals ( ) . set_item ( & vm. ctx , key, value)
144
143
}
145
144
146
- fn del_attr ( & self , _vm : & VirtualMachine , key : & str ) {
145
+ fn delete_name ( & self , _vm : & VirtualMachine , key : & str ) {
147
146
self . get_locals ( ) . del_item ( key)
148
147
}
149
148
}
@@ -846,7 +845,7 @@ impl Frame {
846
845
let obj = import_module ( vm, current_path, module) ?;
847
846
848
847
for ( k, v) in obj. get_key_value_pairs ( ) . iter ( ) {
849
- self . scope . set_attr ( & vm, & objstr:: get_value ( k) , v. clone ( ) ) ;
848
+ self . scope . store_name ( & vm, & objstr:: get_value ( k) , v. clone ( ) ) ;
850
849
}
851
850
Ok ( None )
852
851
}
@@ -968,17 +967,17 @@ impl Frame {
968
967
969
968
fn store_name ( & self , vm : & mut VirtualMachine , name : & str ) -> FrameResult {
970
969
let obj = self . pop_value ( ) ;
971
- self . scope . set_attr ( & vm, name, obj) ;
970
+ self . scope . store_name ( & vm, name, obj) ;
972
971
Ok ( None )
973
972
}
974
973
975
974
fn delete_name ( & self , vm : & mut VirtualMachine , name : & str ) -> FrameResult {
976
- self . scope . del_attr ( vm, name) ;
975
+ self . scope . delete_name ( vm, name) ;
977
976
Ok ( None )
978
977
}
979
978
980
979
fn load_name ( & self , vm : & mut VirtualMachine , name : & str ) -> FrameResult {
981
- match self . scope . get_attr ( & vm, name) {
980
+ match self . scope . load_name ( & vm, name) {
982
981
Some ( value) => {
983
982
self . push_value ( value) ;
984
983
Ok ( None )
0 commit comments