Skip to content

Commit 6f0ac74

Browse files
Merge pull request RustPython#441 from RustPython/dont_call__eq__
Dont call eq
2 parents cc407ed + 67710d6 commit 6f0ac74

File tree

4 files changed

+8
-5
lines changed

4 files changed

+8
-5
lines changed

tests/snippets/tuple.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,6 @@
2424
recursive = (recursive_list,)
2525
recursive_list.append(recursive)
2626
assert repr(recursive) == "([(...)],)"
27+
28+
assert (None, "", 1).index(1) == 2
29+
assert 1 in (None, "", 1)

vm/src/obj/objiter.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ fn contains(vm: &mut VirtualMachine, args: PyFuncArgs, iter_type: PyObjectRef) -
7777
);
7878
loop {
7979
if let Some(element) = get_next_object(vm, iter)? {
80-
let equal = vm.call_method(needle, "__eq__", vec![element.clone()])?;
80+
let equal = vm._eq(needle.clone(), element.clone())?;
8181
if objbool::get_value(&equal) {
8282
return Ok(vm.new_bool(true));
8383
} else {

vm/src/obj/objlist.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ fn list_index(vm: &mut VirtualMachine, args: PyFuncArgs) -> PyResult {
256256
required = [(list, Some(vm.ctx.list_type())), (needle, None)]
257257
);
258258
for (index, element) in get_elements(list).iter().enumerate() {
259-
let py_equal = vm.call_method(needle, "__eq__", vec![element.clone()])?;
259+
let py_equal = vm._eq(needle.clone(), element.clone())?;
260260
if objbool::get_value(&py_equal) {
261261
return Ok(vm.context().new_int(index));
262262
}
@@ -296,7 +296,7 @@ fn list_contains(vm: &mut VirtualMachine, args: PyFuncArgs) -> PyResult {
296296
required = [(list, Some(vm.ctx.list_type())), (needle, None)]
297297
);
298298
for element in get_elements(list).iter() {
299-
match vm.call_method(needle, "__eq__", vec![element.clone()]) {
299+
match vm._eq(needle.clone(), element.clone()) {
300300
Ok(value) => {
301301
if objbool::get_value(&value) {
302302
return Ok(vm.new_bool(true));

vm/src/obj/objtuple.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ pub fn tuple_index(vm: &mut VirtualMachine, args: PyFuncArgs) -> PyResult {
264264
required = [(tuple, Some(vm.ctx.tuple_type())), (needle, None)]
265265
);
266266
for (index, element) in get_elements(tuple).iter().enumerate() {
267-
let py_equal = vm.call_method(needle, "__eq__", vec![element.clone()])?;
267+
let py_equal = vm._eq(needle.clone(), element.clone())?;
268268
if objbool::get_value(&py_equal) {
269269
return Ok(vm.context().new_int(index));
270270
}
@@ -279,7 +279,7 @@ pub fn tuple_contains(vm: &mut VirtualMachine, args: PyFuncArgs) -> PyResult {
279279
required = [(tuple, Some(vm.ctx.tuple_type())), (needle, None)]
280280
);
281281
for element in get_elements(tuple).iter() {
282-
match vm.call_method(needle, "__eq__", vec![element.clone()]) {
282+
match vm._eq(needle.clone(), element.clone()) {
283283
Ok(value) => {
284284
if objbool::get_value(&value) {
285285
return Ok(vm.new_bool(true));

0 commit comments

Comments
 (0)