diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2021-01-27 14:19:26 -0800 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2021-02-06 13:11:25 -0500 |
commit | 2db7e24dbd94017cfad73428cb129500d125c0d0 (patch) | |
tree | 843253b30d2471165a75f95d442c3d5a09f0064e | |
parent | 2650977c38b3f9b7de6e1f1984151197f0cffc4a (diff) | |
download | meson-2db7e24dbd94017cfad73428cb129500d125c0d0.zip meson-2db7e24dbd94017cfad73428cb129500d125c0d0.tar.gz meson-2db7e24dbd94017cfad73428cb129500d125c0d0.tar.bz2 |
modules/rust: use typed_pos_args
-rw-r--r-- | mesonbuild/modules/unstable_rust.py | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/mesonbuild/modules/unstable_rust.py b/mesonbuild/modules/unstable_rust.py index d215376..e74c181 100644 --- a/mesonbuild/modules/unstable_rust.py +++ b/mesonbuild/modules/unstable_rust.py @@ -18,8 +18,8 @@ from . import ExtensionModule, ModuleReturnValue from .. import mlog from ..build import BuildTarget, Executable, InvalidArguments from ..dependencies import Dependency, ExternalLibrary -from ..interpreter import ExecutableHolder, permitted_kwargs -from ..interpreterbase import InterpreterException, permittedKwargs, FeatureNew +from ..interpreter import ExecutableHolder, BuildTargetHolder, permitted_kwargs +from ..interpreterbase import InterpreterException, permittedKwargs, FeatureNew, typed_pos_args from ..mesonlib import stringlistify, unholder, listify if T.TYPE_CHECKING: @@ -35,7 +35,8 @@ class RustModule(ExtensionModule): super().__init__(interpreter) @permittedKwargs(permitted_kwargs['test'] | {'dependencies'} ^ {'protocol'}) - def test(self, state: 'ModuleState', args: T.List, kwargs: T.Dict[str, T.Any]) -> ModuleReturnValue: + @typed_pos_args('rust.test', str, BuildTargetHolder) + def test(self, state: 'ModuleState', args: T.Tuple[str, BuildTargetHolder], kwargs: T.Dict[str, T.Any]) -> ModuleReturnValue: """Generate a rust test target from a given rust target. Rust puts it's unitests inside it's main source files, unlike most @@ -77,14 +78,8 @@ class RustModule(ExtensionModule): rust.test('rust_lib_test', rust_lib) ``` """ - if len(args) != 2: - raise InterpreterException('rustmod.test() takes exactly 2 positional arguments') - name: str = args[0] - if not isinstance(name, str): - raise InterpreterException('First positional argument to rustmod.test() must be a string') + name = args[0] base_target: BuildTarget = unholder(args[1]) - if not isinstance(base_target, BuildTarget): - raise InterpreterException('Second positional argument to rustmod.test() must be a library or executable') if not base_target.uses_rust(): raise InterpreterException('Second positional argument to rustmod.test() must be a rust based target') extra_args = stringlistify(kwargs.get('args', [])) |