interpreter: fix notfound_program method

Which should take a File or str, but only handles str correctly. Which
mypy would have caught for us, if we just had annotations here.
This commit is contained in:
Dylan Baker 2022-02-28 12:16:58 -08:00 committed by Eli Schwartz
parent b4a512b9f8
commit f03c712d17
1 changed files with 4 additions and 2 deletions

View File

@ -1439,8 +1439,10 @@ external dependencies (including libraries) must go to "dependencies".''')
raise InterpreterException(f'Tried to override executable "{name}" which has already been overridden.')
self.build.find_overrides[name] = exe
def notfound_program(self, args):
return NonExistingExternalProgram(' '.join(args))
def notfound_program(self, args: T.List[mesonlib.FileOrString]) -> ExternalProgram:
return NonExistingExternalProgram(' '.join(
[a if isinstance(a, str) else a.absolute_path(self.environment.source_dir, self.environment.build_dir)
for a in args]))
# TODO update modules to always pass `for_machine`. It is bad-form to assume
# the host machine.