Fix PyNumber::boolean (#6111)

This commit is contained in:
Jeong, YunWon
2025-08-26 15:16:47 +09:00
committed by GitHub
parent 711b1a62d5
commit 16cdcfb96f
3 changed files with 3 additions and 3 deletions

View File

@@ -492,7 +492,7 @@ impl AsNumber for PyComplex {
let value = PyComplex::number_downcast(number).value;
value.norm().to_pyresult(vm)
}),
boolean: Some(|number, _vm| Ok(PyComplex::number_downcast(number).value.is_zero())),
boolean: Some(|number, _vm| Ok(!PyComplex::number_downcast(number).value.is_zero())),
true_divide: Some(|a, b, vm| PyComplex::number_op(a, b, inner_div, vm)),
..PyNumberMethods::NOT_IMPLEMENTED
};

View File

@@ -590,7 +590,7 @@ impl AsNumber for PyFloat {
let value = PyFloat::number_downcast(num).value;
value.abs().to_pyresult(vm)
}),
boolean: Some(|num, _vm| Ok(PyFloat::number_downcast(num).value.is_zero())),
boolean: Some(|num, _vm| Ok(!PyFloat::number_downcast(num).value.is_zero())),
int: Some(|num, vm| {
let value = PyFloat::number_downcast(num).value;
try_to_bigint(value, vm).map(|x| PyInt::from(x).into_pyobject(vm))

View File

@@ -773,7 +773,7 @@ impl PyInt {
negative: Some(|num, vm| (&Self::number_downcast(num).value).neg().to_pyresult(vm)),
positive: Some(|num, vm| Ok(Self::number_downcast_exact(num, vm).into())),
absolute: Some(|num, vm| Self::number_downcast(num).value.abs().to_pyresult(vm)),
boolean: Some(|num, _vm| Ok(Self::number_downcast(num).value.is_zero())),
boolean: Some(|num, _vm| Ok(!Self::number_downcast(num).value.is_zero())),
invert: Some(|num, vm| (&Self::number_downcast(num).value).not().to_pyresult(vm)),
lshift: Some(|a, b, vm| Self::number_op(a, b, inner_lshift, vm)),
rshift: Some(|a, b, vm| Self::number_op(a, b, inner_rshift, vm)),