diff options
| author | Dylan Baker <dylan@pnwbakers.com> | 2025-11-03 14:36:05 -0800 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-11-05 10:02:16 -0800 |
| commit | c6282737a7168a297003eaeacbdd6c2565d03103 (patch) | |
| tree | 8a36e8c4bdd69a91dfda00ba75690309f756fe91 /mesonbuild | |
| parent | ae69805df18dcd73865b68ef4337b6a17dd25e15 (diff) | |
| download | meson-c6282737a7168a297003eaeacbdd6c2565d03103.tar.gz | |
interpreter: Move targetclass validation to top of build_target
Why do work and then error out?
Diffstat (limited to 'mesonbuild')
| -rw-r--r-- | mesonbuild/interpreter/interpreter.py | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py index e2376bb47..b2c9e810f 100644 --- a/mesonbuild/interpreter/interpreter.py +++ b/mesonbuild/interpreter/interpreter.py @@ -3381,6 +3381,10 @@ class Interpreter(InterpreterBase, HoldableObject): kwargs: T.Union[kwtypes.Executable, kwtypes.StaticLibrary, kwtypes.SharedLibrary, kwtypes.SharedModule, kwtypes.Jar], targetclass: T.Type[T.Union[build.Executable, build.StaticLibrary, build.SharedModule, build.SharedLibrary, build.Jar]] ) -> T.Union[build.Executable, build.StaticLibrary, build.SharedModule, build.SharedLibrary, build.Jar]: + if targetclass not in {build.Executable, build.SharedLibrary, build.SharedModule, build.StaticLibrary, build.Jar}: + mlog.debug('Unknown target type:', str(targetclass)) + raise RuntimeError('Unreachable code') + name, sources = args for_machine = kwargs['native'] if kwargs.get('rust_crate_type') == 'proc-macro': @@ -3401,15 +3405,11 @@ class Interpreter(InterpreterBase, HoldableObject): # backwards compatibility anyway sources = [s for s in sources if not isinstance(s, (build.BuildTarget, build.ExtractedObjects))] - sources = self.source_strings_to_files(sources) objs = kwargs['objects'] kwargs['dependencies'] = extract_as_list(kwargs, 'dependencies') kwargs['extra_files'] = self.source_strings_to_files(kwargs['extra_files']) self.check_sources_exist(os.path.join(self.source_root, self.subdir), sources) - if targetclass not in {build.Executable, build.SharedLibrary, build.SharedModule, build.StaticLibrary, build.Jar}: - mlog.debug('Unknown target type:', str(targetclass)) - raise RuntimeError('Unreachable code') self.__process_language_args(kwargs) if targetclass is build.StaticLibrary: for lang in compilers.all_languages - {'java'}: |
