◐ Shell
clean mode source ↗

Opcode name by ShaharNaveh · Pull Request #7433 · RustPython/RustPython

-            Self::LoadGlobal { namei } => {
-                let oparg = namei.get(arg);
-                let name_idx = oparg >> 1;
-                let opname = self.name();
-                if (oparg & 1) != 0 {
-                    write!(f, "{:pad$}({}, NULL + {})", opname, oparg, name(name_idx))
-                } else {
-                    write!(f, "{:pad$}({}, {})", opname, oparg, name(name_idx))
-                }
-            }
-            Self::LoadGlobalBuiltin => {
-                let oparg = u32::from(arg);
-                let name_idx = oparg >> 1;
-                let opname = self.name();
-                if (oparg & 1) != 0 {
-                    write!(f, "{:pad$}({}, NULL + {})", opname, oparg, name(name_idx))
-                } else {
-                    write!(f, "{:pad$}({}, {})", opname, oparg, name(name_idx))
-                }
-            }
-            Self::LoadGlobalModule => {
-                let oparg = u32::from(arg);
-                let name_idx = oparg >> 1;
-                let opname = self.name();
-                if (oparg & 1) != 0 {
-                    write!(f, "{:pad$}({}, NULL + {})", opname, oparg, name(name_idx))
-                } else {
-                    write!(f, "{:pad$}({}, {})", opname, oparg, name(name_idx))
-                }
-            }
+            Self::LoadGlobal { namei } => {
+                let oparg = namei.get(arg);
+                fmt_load_global(f, self.name(), oparg, name(oparg >> 1), pad)
+            }
+            Self::LoadGlobalBuiltin | Self::LoadGlobalModule => {
+                let oparg = u32::from(arg);
+                fmt_load_global(f, self.name(), oparg, name(oparg >> 1), pad)
+            }
let fmt_load_global = |f: &mut fmt::Formatter<'_>, opname: &str, oparg: u32, resolved_name: &str, pad: usize| -> fmt::Result {
    if (oparg & 1) != 0 {
        write!(f, "{:pad$}({}, NULL + {})", opname, oparg, resolved_name)
    } else {
        write!(f, "{:pad$}({}, {})", opname, oparg, resolved_name)
    }
};