From ffd7e8cdb709d41bc149683913210fd1f96db654 Mon Sep 17 00:00:00 2001 From: jfh Date: Tue, 2 Nov 2021 23:54:34 +0200 Subject: [PATCH] Disallow kwargs from genericalias new. --- vm/src/builtins/genericalias.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/vm/src/builtins/genericalias.rs b/vm/src/builtins/genericalias.rs index 233e746e0..f9a062ea4 100644 --- a/vm/src/builtins/genericalias.rs +++ b/vm/src/builtins/genericalias.rs @@ -39,17 +39,15 @@ impl PyValue for PyGenericAlias { } } -#[derive(FromArgs)] -pub struct GenericAliasArgs { - origin: PyTypeRef, - arguments: PyObjectRef, -} - impl Constructor for PyGenericAlias { - type Args = GenericAliasArgs; + type Args = FuncArgs; fn py_new(cls: PyTypeRef, args: Self::Args, vm: &VirtualMachine) -> PyResult { - PyGenericAlias::new(args.origin, args.arguments, vm).into_pyresult_with_type(vm, cls) + if !args.kwargs.is_empty() { + return Err(vm.new_type_error("GenericAlias() takes no keyword arguments".to_owned())); + } + let (origin, arguments): (_, PyObjectRef) = args.bind(vm)?; + PyGenericAlias::new(origin, arguments, vm).into_pyresult_with_type(vm, cls) } }