interpreterobjects: use typed_* with configuration_data.merge_from
@@ -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 = [
