aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter/interpreterobjects.py
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2021-12-06 15:02:18 -0800
committerEli Schwartz <eschwartz93@gmail.com>2022-01-18 17:53:29 -0500
commit7641bfd0cee6daf320b98f7d1bf37e5b0c109a10 (patch)
tree22c67fd1395bc7467425fa7831c8fb3e93420761 /mesonbuild/interpreter/interpreterobjects.py
parentf7cbe89a1381daa3b347ba91cd7f43e0c761829e (diff)
downloadmeson-7641bfd0cee6daf320b98f7d1bf37e5b0c109a10.zip
meson-7641bfd0cee6daf320b98f7d1bf37e5b0c109a10.tar.gz
meson-7641bfd0cee6daf320b98f7d1bf37e5b0c109a10.tar.bz2
interpreterobjects: use typed_* with configuration_data.merge_from
Diffstat (limited to 'mesonbuild/interpreter/interpreterobjects.py')
-rw-r--r--mesonbuild/interpreter/interpreterobjects.py12
1 files changed, 5 insertions, 7 deletions
diff --git a/mesonbuild/interpreter/interpreterobjects.py b/mesonbuild/interpreter/interpreterobjects.py
index b275050..9b8c1b2 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 = [