diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2021-02-08 16:10:44 -0800 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2021-02-25 23:08:23 +0200 |
commit | eba9535428ee9ea41ff1d05f65e07bfe7060060b (patch) | |
tree | f1d57ed0d2eaaa6b360042715c7f8d831906e48b | |
parent | 69c22181f7b5b5c1510d17976ac74e974ecae2b1 (diff) | |
download | meson-eba9535428ee9ea41ff1d05f65e07bfe7060060b.zip meson-eba9535428ee9ea41ff1d05f65e07bfe7060060b.tar.gz meson-eba9535428ee9ea41ff1d05f65e07bfe7060060b.tar.bz2 |
interpreter: stop using hasattr for held_object
We have unholder or isinsatnce(ObjectHolder) for that
-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.') |