diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2019-07-19 14:34:16 +0400 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2019-07-23 08:46:26 -0700 |
commit | 381110143493ef12b62e79931002cc77dd47a182 (patch) | |
tree | 63bdc67c8216ab3f96aa1353c0e9f9316b2aa0c5 /mesonbuild/interpreterbase.py | |
parent | c8a6a44850485b61eca520f0153f5532f871db5e (diff) | |
download | meson-381110143493ef12b62e79931002cc77dd47a182.zip meson-381110143493ef12b62e79931002cc77dd47a182.tar.gz meson-381110143493ef12b62e79931002cc77dd47a182.tar.bz2 |
meson: handle nested disabler
Fixes #5659
Diffstat (limited to 'mesonbuild/interpreterbase.py')
-rw-r--r-- | mesonbuild/interpreterbase.py | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/mesonbuild/interpreterbase.py b/mesonbuild/interpreterbase.py index 71a4ef3..b5510cf 100644 --- a/mesonbuild/interpreterbase.py +++ b/mesonbuild/interpreterbase.py @@ -337,20 +337,25 @@ class Disabler(InterpreterObject): def found_method(self, args, kwargs): return False -def is_disabler(i): +def is_disabler(i) -> bool: return isinstance(i, Disabler) -def is_disabled(args, kwargs): +def is_arg_disabled(arg) -> bool: + if is_disabler(arg): + return True + if isinstance(arg, list): + for i in arg: + if is_arg_disabled(i): + return True + return False + +def is_disabled(args, kwargs) -> bool: for i in args: - if isinstance(i, Disabler): + if is_arg_disabled(i): return True for i in kwargs.values(): - if isinstance(i, Disabler): + if is_arg_disabled(i): return True - if isinstance(i, list): - for j in i: - if isinstance(j, Disabler): - return True return False class InterpreterBase: |