From 7641bfd0cee6daf320b98f7d1bf37e5b0c109a10 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Mon, 6 Dec 2021 15:02:18 -0800 Subject: [PATCH] interpreterobjects: use typed_* with configuration_data.merge_from --- mesonbuild/interpreter/interpreterobjects.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/mesonbuild/interpreter/interpreterobjects.py b/mesonbuild/interpreter/interpreterobjects.py index b27505086..9b8c1b28a 100644 --- a/mesonbuild/interpreter/interpreterobjects.py +++ b/mesonbuild/interpreter/interpreterobjects.py @@ -393,15 +393,13 @@ class ConfigurationDataObject(MutableInterpreterObject, MesonInterpreterObject): def keys(self) -> T.List[str]: return list(self.conf_data.values.keys()) + @typed_pos_args('configuration_data.merge_from', object) # yay for recursive type validation! + @noKwargs def merge_from_method(self, args: T.List[TYPE_var], kwargs: TYPE_kwargs) -> None: - if len(args) != 1: - raise InterpreterException('Merge_from takes one positional argument.') - from_object_holder = args[0] - if not isinstance(from_object_holder, ConfigurationDataObject): + from_object = args[0] + if not isinstance(from_object, ConfigurationDataObject): raise InterpreterException('Merge_from argument must be a configuration data object.') - from_object = from_object_holder.conf_data - for k, v in from_object.values.items(): - self.conf_data.values[k] = v + self.conf_data.values.update(from_object.conf_data.values) _PARTIAL_DEP_KWARGS = [