diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2018-06-06 14:23:17 -0400 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2018-06-07 12:56:27 +0000 |
commit | 2d3bfa0778d3f7068585c82e991a25c0ce79fbac (patch) | |
tree | 8e3979d5c1cb7893a90f3bd929d4d1a58d9506cb /mesonbuild/interpreterbase.py | |
parent | e581a8937f290fada2eaecc95c978aa6db8e3a2f (diff) | |
download | meson-2d3bfa0778d3f7068585c82e991a25c0ce79fbac.zip meson-2d3bfa0778d3f7068585c82e991a25c0ce79fbac.tar.gz meson-2d3bfa0778d3f7068585c82e991a25c0ce79fbac.tar.bz2 |
Interpreter: Fix subdir_done() to exit from inside if/foreach blocks
Closes: #3700.
Diffstat (limited to 'mesonbuild/interpreterbase.py')
-rw-r--r-- | mesonbuild/interpreterbase.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/mesonbuild/interpreterbase.py b/mesonbuild/interpreterbase.py index a908732..1c61345 100644 --- a/mesonbuild/interpreterbase.py +++ b/mesonbuild/interpreterbase.py @@ -326,7 +326,10 @@ class InterpreterBase: def run(self): # Evaluate everything after the first line, which is project() because # we already parsed that in self.parse_project() - self.evaluate_codeblock(self.ast, start=1) + try: + self.evaluate_codeblock(self.ast, start=1) + except SubdirDoneRequest: + pass def evaluate_codeblock(self, node, start=0, end=None): if node is None: @@ -343,8 +346,6 @@ class InterpreterBase: try: self.current_lineno = cur.lineno self.evaluate_statement(cur) - except SubdirDoneRequest: - break except Exception as e: if not(hasattr(e, 'lineno')): e.lineno = cur.lineno |