diff options
author | Daniel Mensinger <daniel@mensinger-ka.de> | 2021-06-28 17:22:14 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2021-07-02 17:14:44 +0300 |
commit | 971a0b1775ef80fc0877b3b90f75803f197c866b (patch) | |
tree | 40f206fa6112707dfc0600546c072e104a55c5e1 /mesonbuild/interpreterbase/_unholder.py | |
parent | 5bb93490c4c15198bcd230ecf64d3e5c5ef17951 (diff) | |
download | meson-971a0b1775ef80fc0877b3b90f75803f197c866b.zip meson-971a0b1775ef80fc0877b3b90f75803f197c866b.tar.gz meson-971a0b1775ef80fc0877b3b90f75803f197c866b.tar.bz2 |
fix: get_variable default variables are not ObjectHolders (fixes #8936)
Diffstat (limited to 'mesonbuild/interpreterbase/_unholder.py')
-rw-r--r-- | mesonbuild/interpreterbase/_unholder.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/mesonbuild/interpreterbase/_unholder.py b/mesonbuild/interpreterbase/_unholder.py index b5663a5..7e95232 100644 --- a/mesonbuild/interpreterbase/_unholder.py +++ b/mesonbuild/interpreterbase/_unholder.py @@ -18,7 +18,7 @@ from ..mesonlib import HoldableObject, MesonBugException import typing as T -def _unholder(obj: T.Union[TYPE_var, InterpreterObject]) -> TYPE_var: +def _unholder(obj: T.Union[TYPE_var, InterpreterObject], *, permissive: bool = False) -> TYPE_var: if isinstance(obj, (int, bool, str)): return obj elif isinstance(obj, list): @@ -30,6 +30,8 @@ def _unholder(obj: T.Union[TYPE_var, InterpreterObject]) -> TYPE_var: return obj.held_object elif isinstance(obj, MesonInterpreterObject): return obj + elif isinstance(obj, HoldableObject) and permissive: + return obj elif isinstance(obj, HoldableObject): raise MesonBugException(f'Argument {obj} of type {type(obj).__name__} is not held by an ObjectHolder.') elif isinstance(obj, InterpreterObject): |