aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/ast/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2019-04-02 23:10:16 +0300
committerGitHub <noreply@github.com>2019-04-02 23:10:16 +0300
commitb1aa54bb2911ecf0f26391a9b1e0a6cd308913b5 (patch)
tree6ce41b5ac3e03f3cda19ee6dda5669789a5fcedd /mesonbuild/ast/interpreter.py
parentff477d2b3f5ddc582140e6d357e52f1cb1da74ce (diff)
parent6da0df95c11fac6037d421ae8cf80af146d321da (diff)
downloadmeson-b1aa54bb2911ecf0f26391a9b1e0a6cd308913b5.zip
meson-b1aa54bb2911ecf0f26391a9b1e0a6cd308913b5.tar.gz
meson-b1aa54bb2911ecf0f26391a9b1e0a6cd308913b5.tar.bz2
Merge pull request #5197 from mensinda/introDepBugFix
mintro: Fix crash when required is a function (closes #5177)
Diffstat (limited to 'mesonbuild/ast/interpreter.py')
-rw-r--r--mesonbuild/ast/interpreter.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/mesonbuild/ast/interpreter.py b/mesonbuild/ast/interpreter.py
index 01277f0..f1602c0 100644
--- a/mesonbuild/ast/interpreter.py
+++ b/mesonbuild/ast/interpreter.py
@@ -153,8 +153,20 @@ class AstInterpreter(interpreterbase.InterpreterBase):
return True
def evaluate_arithmeticstatement(self, cur):
+ self.evaluate_statement(cur.left)
+ self.evaluate_statement(cur.right)
return 0
+ def evaluate_uminusstatement(self, cur):
+ self.evaluate_statement(cur.value)
+ return 0
+
+ def evaluate_ternary(self, node):
+ assert(isinstance(node, mparser.TernaryNode))
+ self.evaluate_statement(node.condition)
+ self.evaluate_statement(node.trueblock)
+ self.evaluate_statement(node.falseblock)
+
def evaluate_plusassign(self, node):
assert(isinstance(node, mparser.PlusAssignmentNode))
if node.var_name not in self.assignments:
@@ -177,6 +189,18 @@ class AstInterpreter(interpreterbase.InterpreterBase):
return args.arguments, args.kwargs
def evaluate_comparison(self, node):
+ self.evaluate_statement(node.left)
+ self.evaluate_statement(node.right)
+ return False
+
+ def evaluate_andstatement(self, cur):
+ self.evaluate_statement(cur.left)
+ self.evaluate_statement(cur.right)
+ return False
+
+ def evaluate_orstatement(self, cur):
+ self.evaluate_statement(cur.left)
+ self.evaluate_statement(cur.right)
return False
def evaluate_foreach(self, node):