@@ -4,11 +4,10 @@ use std::fmt;
4
4
use crate :: function:: OptionalArg ;
5
5
use crate :: pyhash;
6
6
use crate :: pyobject:: {
7
- IdProtocol , IntoPyObject , PyClassImpl , PyContext , PyObjectRef , PyRef , PyResult , PyValue ,
7
+ IntoPyObject , PyClassImpl , PyContext , PyObjectRef , PyRef , PyResult , PyValue ,
8
8
} ;
9
9
use crate :: vm:: { ReprGuard , VirtualMachine } ;
10
10
11
- use super :: objbool;
12
11
use super :: objiter;
13
12
use super :: objsequence:: {
14
13
get_elements_tuple, get_item, seq_equal, seq_ge, seq_gt, seq_le, seq_lt, seq_mul,
@@ -143,13 +142,8 @@ impl PyTuple {
143
142
fn count ( & self , needle : PyObjectRef , vm : & VirtualMachine ) -> PyResult < usize > {
144
143
let mut count: usize = 0 ;
145
144
for element in self . elements . iter ( ) {
146
- if element . is ( & needle) {
145
+ if vm . bool_equal ( element , & needle) ? {
147
146
count += 1 ;
148
- } else {
149
- let is_eq = vm. _eq ( element. clone ( ) , needle. clone ( ) ) ?;
150
- if objbool:: boolval ( vm, is_eq) ? {
151
- count += 1 ;
152
- }
153
147
}
154
148
}
155
149
Ok ( count)
@@ -237,11 +231,7 @@ impl PyTuple {
237
231
#[ pymethod( name = "index" ) ]
238
232
fn index ( & self , needle : PyObjectRef , vm : & VirtualMachine ) -> PyResult < usize > {
239
233
for ( index, element) in self . elements . iter ( ) . enumerate ( ) {
240
- if element. is ( & needle) {
241
- return Ok ( index) ;
242
- }
243
- let is_eq = vm. _eq ( needle. clone ( ) , element. clone ( ) ) ?;
244
- if objbool:: boolval ( vm, is_eq) ? {
234
+ if vm. bool_equal ( element, & needle) ? {
245
235
return Ok ( index) ;
246
236
}
247
237
}
@@ -251,11 +241,7 @@ impl PyTuple {
251
241
#[ pymethod( name = "__contains__" ) ]
252
242
fn contains ( & self , needle : PyObjectRef , vm : & VirtualMachine ) -> PyResult < bool > {
253
243
for element in self . elements . iter ( ) {
254
- if element. is ( & needle) {
255
- return Ok ( true ) ;
256
- }
257
- let is_eq = vm. _eq ( needle. clone ( ) , element. clone ( ) ) ?;
258
- if objbool:: boolval ( vm, is_eq) ? {
244
+ if vm. bool_equal ( element, & needle) ? {
259
245
return Ok ( true ) ;
260
246
}
261
247
}
0 commit comments