From a91127c91ab86013df59b22c8f9dfa5ea4985d53 Mon Sep 17 00:00:00 2001 From: "Jeong, YunWon" <69878+youknowone@users.noreply.github.com> Date: Fri, 27 Mar 2026 12:41:02 +0900 Subject: [PATCH] Reorder PyNumberBinaryOp to match NB_* constants (#7512) 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 | 33 ++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/crates/vm/src/protocol/number.rs b/crates/vm/src/protocol/number.rs index 77e57293f..eaf04d9a0 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, - Rshift, - And, - Xor, Or, + Rshift, + Subtract, + TrueDivide, + Xor, 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 {