Factor out an _add_languages() function in introspector
Factor out an _add_languages() function in introspector, rather than
calling func_add_languages() with arguments crafted to fake an
interpreter call.
@@ -123,7 +123,8 @@ class IntrospectionInterpreter(AstInterpreter):
options = {k: v for k, v in self.environment.meson_options.host[''].items() if k.startswith('backend_')}
self.coredata.set_options(options)
- self.func_add_languages(None, proj_langs, None)
+ self._add_languages(proj_langs, MachineChoice.HOST)
+ self._add_languages(proj_langs, MachineChoice.BUILD)
def do_subproject(self, dirname: str) -> None:
subproject_dir_abs = os.path.join(self.environment.get_source_dir(), self.subproject_dir)
@@ -137,9 +138,12 @@ class IntrospectionInterpreter(AstInterpreter):
return
def func_add_languages(self, node: BaseNode, args: T.List[TYPE_nvar], kwargs: T.Dict[str, TYPE_nvar]) -> None:
- args = self.flatten_args(args)
for for_machine in [MachineChoice.BUILD, MachineChoice.HOST]:
- for lang in sorted(args, key=compilers.sort_clink):
+ self._add_languages(args, for_machine)
+
+ def _add_languages(self, langs: T.List[TYPE_nvar], for_machine: MachineChoice) -> None:
+ langs = self.flatten_args(langs)
+ for lang in sorted(langs, key=compilers.sort_clink):
if isinstance(lang, StringNode):
assert isinstance(lang.value, str)
lang = lang.value
