diff --git a/crates/derive-impl/src/util.rs b/crates/derive-impl/src/util.rs index cae12d3c3..a3b751bd9 100644 --- a/crates/derive-impl/src/util.rs +++ b/crates/derive-impl/src/util.rs @@ -768,8 +768,9 @@ pub(crate) fn infer_native_call_flags(sig: &Signature, drop_first_typed: usize) }; let ty_tokens = &typed.ty; let ty = quote!(#ty_tokens).to_string().replace(' ', ""); - // `vm: &VirtualMachine` is not a Python-level argument. - if ty.starts_with('&') && ty.ends_with("VirtualMachine") { + // The interpreter supplies `vm` and `callee`; a Python call never + // passes them. + if (ty.starts_with('&') && ty.ends_with("VirtualMachine")) || ty.ends_with("Callee") { continue; } typed_args.push(ty); @@ -853,7 +854,7 @@ fn func_sig(sig: &Signature, mut implicit_self: Option<&str>) -> Option params.push("*args, **kwargs".to_owned()); continue; } - if ty.starts_with('&') && ty.ends_with("VirtualMachine") { + if (ty.starts_with('&') && ty.ends_with("VirtualMachine")) || ty.ends_with("Callee") { continue; } if let Some(marker) = implicit_self.take() { diff --git a/crates/vm/src/builtins/bytearray.rs b/crates/vm/src/builtins/bytearray.rs index f42dc7a85..ce8425f68 100644 --- a/crates/vm/src/builtins/bytearray.rs +++ b/crates/vm/src/builtins/bytearray.rs @@ -252,8 +252,8 @@ impl PyByteArray { } #[pystaticmethod] - fn maketrans(from: PyBytesInner, to: PyBytesInner, vm: &VirtualMachine) -> PyResult> { - PyBytesInner::maketrans(from, to, vm) + fn maketrans(frm: PyBytesInner, to: PyBytesInner, vm: &VirtualMachine) -> PyResult> { + PyBytesInner::maketrans(frm, to, vm) } #[pymethod] diff --git a/crates/vm/src/builtins/bytes.rs b/crates/vm/src/builtins/bytes.rs index bd132eb15..ab18cf636 100644 --- a/crates/vm/src/builtins/bytes.rs +++ b/crates/vm/src/builtins/bytes.rs @@ -250,8 +250,8 @@ impl PyBytes { } #[pystaticmethod] - fn maketrans(from: PyBytesInner, to: PyBytesInner, vm: &VirtualMachine) -> PyResult> { - PyBytesInner::maketrans(from, to, vm) + fn maketrans(frm: PyBytesInner, to: PyBytesInner, vm: &VirtualMachine) -> PyResult> { + PyBytesInner::maketrans(frm, to, vm) } fn __getitem__(&self, needle: PyObjectRef, vm: &VirtualMachine) -> PyResult {