diff options
-rw-r--r-- | mesonbuild/interpreter.py | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index a8534d3..e99500d 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2185,8 +2185,7 @@ class MesonMain(InterpreterObject): name, exe = args if not isinstance(name, str): raise InterpreterException('First argument must be a string') - if hasattr(exe, 'held_object'): - exe = exe.held_object + exe = unholder(exe) if isinstance(exe, mesonlib.File): abspath = exe.absolute_path(self.interpreter.environment.source_dir, self.interpreter.environment.build_dir) @@ -2206,8 +2205,7 @@ class MesonMain(InterpreterObject): dep = args[1] if not isinstance(name, str) or not name: raise InterpreterException('First argument must be a string and cannot be empty') - if hasattr(dep, 'held_object'): - dep = dep.held_object + dep = unholder(dep) if not isinstance(dep, dependencies.Dependency): raise InterpreterException('Second argument must be a dependency object') identifier = dependencies.get_dep_identifier(name, kwargs) @@ -2570,9 +2568,7 @@ class Interpreter(InterpreterBase): return DependencyHolder(item, self.subproject) elif isinstance(item, dependencies.ExternalProgram): return ExternalProgramHolder(item, self.subproject) - elif hasattr(item, 'held_object'): - return item - elif isinstance(item, InterpreterObject): + elif isinstance(item, (InterpreterObject, ObjectHolder)): return item else: raise InterpreterException('Module returned a value of unknown type.') @@ -2605,9 +2601,7 @@ class Interpreter(InterpreterBase): return InstallDirHolder(v) elif isinstance(v, Test): self.build.tests.append(v) - elif hasattr(v, 'held_object'): - pass - elif isinstance(v, (int, str, bool, Disabler)): + elif isinstance(v, (int, str, bool, Disabler, ObjectHolder)): pass else: raise InterpreterException('Module returned a value of unknown type.') |