diff options
author | Elliot <35050275+Apache-HB@users.noreply.github.com> | 2020-08-18 10:07:59 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-18 07:07:59 -0700 |
commit | adfee4460a6a01de975b25e6faf9fd9261238ebd (patch) | |
tree | fd24c125763def814ecd422f6ce860fa00c95159 /mesonbuild/interpreterbase.py | |
parent | 7092efabb5a0488b694418c823463048ddbb310c (diff) | |
download | meson-adfee4460a6a01de975b25e6faf9fd9261238ebd.zip meson-adfee4460a6a01de975b25e6faf9fd9261238ebd.tar.gz meson-adfee4460a6a01de975b25e6faf9fd9261238ebd.tar.bz2 |
prevent disabler() object from overwriting arrays (#7484)
* prevent disabler object from overwriting arrays
fixes #7107
* fix failing test
forgot that func() != func(void) in c
Diffstat (limited to 'mesonbuild/interpreterbase.py')
-rw-r--r-- | mesonbuild/interpreterbase.py | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/mesonbuild/interpreterbase.py b/mesonbuild/interpreterbase.py index 822167c..6c4f273 100644 --- a/mesonbuild/interpreterbase.py +++ b/mesonbuild/interpreterbase.py @@ -810,9 +810,7 @@ The result of this is undefined and will become a hard error in a future Meson r assert(isinstance(node, mparser.PlusAssignmentNode)) varname = node.var_name addition = self.evaluate_statement(node.value) - if is_disabler(addition): - self.set_variable(varname, addition) - return + # Remember that all variables are immutable. We must always create a # full new variable and then assign it. old_variable = self.get_variable(varname) @@ -836,7 +834,7 @@ The result of this is undefined and will become a hard error in a future Meson r new_value = {**old_variable, **addition} # Add other data types here. else: - raise InvalidArguments('The += operator currently only works with arrays, dicts, strings or ints ') + raise InvalidArguments('The += operator currently only works with arrays, dicts, strings or ints') self.set_variable(varname, new_value) def evaluate_indexing(self, node: mparser.IndexNode) -> TYPE_var: |