diff --git a/vm/src/pyobject.rs b/vm/src/pyobject.rs index d469e0c24..46b49ff08 100644 --- a/vm/src/pyobject.rs +++ b/vm/src/pyobject.rs @@ -770,10 +770,9 @@ impl PartialEq for PyObject { PyObjectKind::Integer { value: ref v1i }, PyObjectKind::Integer { value: ref v2i }, ) => v2i == v1i, - ( - PyObjectKind::Float { value: ref v1i }, - PyObjectKind::Float { value: ref v2i }, - ) => v2i == v1i, + ( PyObjectKind::Float { value: ref v1i }, PyObjectKind::Float { value: ref v2i }) => { + v2i == v1i + } (PyObjectKind::String { value: ref v1i }, PyObjectKind::String { value: ref v2i }) => { *v2i == *v1i } diff --git a/vm/src/vm.rs b/vm/src/vm.rs index bff9c1f08..e31cb7150 100644 --- a/vm/src/vm.rs +++ b/vm/src/vm.rs @@ -306,18 +306,15 @@ impl VirtualMachine { &PyObjectKind::Integer { value: ref v1 }, &PyObjectKind::Integer { value: ref v2 }, ) => Ok(self.ctx.new_int(v1.pow(*v2 as u32))), - ( - &PyObjectKind::Float { value: ref v1 }, - &PyObjectKind::Integer { value: ref v2 }, - ) => Ok(self.ctx.new_float(v1.powf(*v2 as f64))), - ( - &PyObjectKind::Integer { value: ref v1 }, - &PyObjectKind::Float { value: ref v2 }, - ) => Ok(self.ctx.new_float((*v1 as f64).powf(*v2))), - ( - &PyObjectKind::Float { value: ref v1 }, - &PyObjectKind::Float { value: ref v2 }, - ) => Ok(self.ctx.new_float(v1.powf(*v2))), + (&PyObjectKind::Float { value: ref v1 }, &PyObjectKind::Integer { value: ref v2 }) => { + Ok(self.ctx.new_float(v1.powf(*v2 as f64))) + } + (&PyObjectKind::Integer { value: ref v1 }, &PyObjectKind::Float { value: ref v2 }) => { + Ok(self.ctx.new_float((*v1 as f64).powf(*v2))) + } + (&PyObjectKind::Float { value: ref v1 }, &PyObjectKind::Float { value: ref v2 }) => { + Ok(self.ctx.new_float(v1.powf(*v2))) + } _ => panic!("Not impl"), } }