diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2019-12-04 12:31:18 -0500 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2019-12-10 18:02:41 +0200 |
commit | 552e78da4d1837699cc706e59078046ce4a1a2a5 (patch) | |
tree | 150aac4c6aa9d601a1b357b8a9e15d3b815967df /mesonbuild/interpreter.py | |
parent | 9c72d0fdb287f1838c68915e469b6db455f59a7e (diff) | |
download | meson-552e78da4d1837699cc706e59078046ce4a1a2a5.zip meson-552e78da4d1837699cc706e59078046ce4a1a2a5.tar.gz meson-552e78da4d1837699cc706e59078046ce4a1a2a5.tar.bz2 |
assert(): Make message argument optional
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter.py | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 024266e..d7f826c 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2366,14 +2366,24 @@ external dependencies (including libraries) must go to "dependencies".''') @noKwargs def func_assert(self, node, args, kwargs): - if len(args) != 2: - raise InterpreterException('Assert takes exactly two arguments') - value, message = args + if len(args) == 1: + FeatureNew('assert function without message argument', '0.53.0').use(self.subproject) + value = args[0] + message = None + elif len(args) == 2: + value, message = args + if not isinstance(message, str): + raise InterpreterException('Assert message not a string.') + else: + raise InterpreterException('Assert takes between one and two arguments') if not isinstance(value, bool): raise InterpreterException('Assert value not bool.') - if not isinstance(message, str): - raise InterpreterException('Assert message not a string.') if not value: + if message is None: + from .ast import AstPrinter + printer = AstPrinter() + node.args.arguments[0].accept(printer) + message = printer.result raise InterpreterException('Assert failed: ' + message) def validate_arguments(self, args, argcount, arg_types): |