@@ -53,7 +53,7 @@ impl PyTupleRef {
53
53
fn lt ( self , other : PyObjectRef , vm : & VirtualMachine ) -> PyResult {
54
54
if objtype:: isinstance ( & other, & vm. ctx . tuple_type ( ) ) {
55
55
let other = get_elements_tuple ( & other) ;
56
- let res = seq_lt ( vm, & self . elements , & other) ?;
56
+ let res = seq_lt ( vm, & self . elements . as_slice ( ) , & other. as_slice ( ) ) ?;
57
57
Ok ( vm. new_bool ( res) )
58
58
} else {
59
59
Ok ( vm. ctx . not_implemented ( ) )
@@ -63,7 +63,7 @@ impl PyTupleRef {
63
63
fn gt ( self , other : PyObjectRef , vm : & VirtualMachine ) -> PyResult {
64
64
if objtype:: isinstance ( & other, & vm. ctx . tuple_type ( ) ) {
65
65
let other = get_elements_tuple ( & other) ;
66
- let res = seq_gt ( vm, & self . elements , & other) ?;
66
+ let res = seq_gt ( vm, & self . elements . as_slice ( ) , & other. as_slice ( ) ) ?;
67
67
Ok ( vm. new_bool ( res) )
68
68
} else {
69
69
Ok ( vm. ctx . not_implemented ( ) )
@@ -73,7 +73,7 @@ impl PyTupleRef {
73
73
fn ge ( self , other : PyObjectRef , vm : & VirtualMachine ) -> PyResult {
74
74
if objtype:: isinstance ( & other, & vm. ctx . tuple_type ( ) ) {
75
75
let other = get_elements_tuple ( & other) ;
76
- let res = seq_ge ( vm, & self . elements , & other) ?;
76
+ let res = seq_ge ( vm, & self . elements . as_slice ( ) , & other. as_slice ( ) ) ?;
77
77
Ok ( vm. new_bool ( res) )
78
78
} else {
79
79
Ok ( vm. ctx . not_implemented ( ) )
@@ -83,7 +83,7 @@ impl PyTupleRef {
83
83
fn le ( self , other : PyObjectRef , vm : & VirtualMachine ) -> PyResult {
84
84
if objtype:: isinstance ( & other, & vm. ctx . tuple_type ( ) ) {
85
85
let other = get_elements_tuple ( & other) ;
86
- let res = seq_le ( vm, & self . elements , & other) ?;
86
+ let res = seq_le ( vm, & self . elements . as_slice ( ) , & other. as_slice ( ) ) ?;
87
87
Ok ( vm. new_bool ( res) )
88
88
} else {
89
89
Ok ( vm. ctx . not_implemented ( ) )
@@ -122,7 +122,7 @@ impl PyTupleRef {
122
122
fn eq ( self , other : PyObjectRef , vm : & VirtualMachine ) -> PyResult {
123
123
if objtype:: isinstance ( & other, & vm. ctx . tuple_type ( ) ) {
124
124
let other = get_elements_tuple ( & other) ;
125
- let res = seq_equal ( vm, & self . elements , & other) ?;
125
+ let res = seq_equal ( vm, & self . elements . as_slice ( ) , & other. as_slice ( ) ) ?;
126
126
Ok ( vm. new_bool ( res) )
127
127
} else {
128
128
Ok ( vm. ctx . not_implemented ( ) )
@@ -164,13 +164,14 @@ impl PyTupleRef {
164
164
}
165
165
166
166
fn mul ( self , counter : isize , vm : & VirtualMachine ) -> PyObjectRef {
167
- let new_elements = seq_mul ( & self . elements , counter) ;
167
+ let new_elements = seq_mul ( & self . elements . as_slice ( ) , counter)
168
+ . cloned ( )
169
+ . collect ( ) ;
168
170
vm. ctx . new_tuple ( new_elements)
169
171
}
170
172
171
173
fn rmul ( self , counter : isize , vm : & VirtualMachine ) -> PyObjectRef {
172
- let new_elements = seq_mul ( & self . elements , counter) ;
173
- vm. ctx . new_tuple ( new_elements)
174
+ self . mul ( counter, vm)
174
175
}
175
176
176
177
fn getitem ( self , needle : PyObjectRef , vm : & VirtualMachine ) -> PyResult {
0 commit comments