From 5c80cee28ba63b17e54f29c7f2acf3b14926e8f1 Mon Sep 17 00:00:00 2001 From: "Jeong, YunWon" Date: Fri, 27 Mar 2026 10:03:43 +0900 Subject: [PATCH] Reorder PyNumberBinaryOp to match NB_* constants Align variant ordering with BinaryOperator enum and CPython's NB_* constants from opcode.h. Divmod is placed last as it has no corresponding NB_* constant. --- crates/vm/src/protocol/number.rs | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/crates/vm/src/protocol/number.rs b/crates/vm/src/protocol/number.rs index 77e57293f15..eaf04d9a065 100644 --- a/crates/vm/src/protocol/number.rs +++ b/crates/vm/src/protocol/number.rs @@ -200,33 +200,34 @@ impl PyNumberMethods { } } +/// Matches the NB_* constants ordering from opcode.h / BinaryOperator. #[derive(Copy, Clone)] pub enum PyNumberBinaryOp { Add, - Subtract, + And, + FloorDivide, + Lshift, + MatrixMultiply, Multiply, Remainder, - Divmod, - Lshift, + Or, Rshift, - And, + Subtract, + TrueDivide, Xor, - Or, InplaceAdd, - InplaceSubtract, + InplaceAnd, + InplaceFloorDivide, + InplaceLshift, + InplaceMatrixMultiply, InplaceMultiply, InplaceRemainder, - InplaceLshift, - InplaceRshift, - InplaceAnd, - InplaceXor, InplaceOr, - FloorDivide, - TrueDivide, - InplaceFloorDivide, + InplaceRshift, + InplaceSubtract, InplaceTrueDivide, - MatrixMultiply, - InplaceMatrixMultiply, + InplaceXor, + Divmod, } impl PyNumberBinaryOp {