interpreter: use typed_pos_args for alias_target

pull/8953/head
Dylan Baker 4 years ago
parent 09d7da19c1
commit 982973f303
  1. 14
      mesonbuild/interpreter/interpreter.py

@ -1778,17 +1778,11 @@ This will become a hard error in the future.''' % kwargs['input'], location=self
return tg return tg
@FeatureNew('alias_target', '0.52.0') @FeatureNew('alias_target', '0.52.0')
@typed_pos_args('alias_target', str, varargs=build.Target, min_varargs=1)
@noKwargs @noKwargs
def func_alias_target(self, node, args, kwargs): def func_alias_target(self, node: mparser.BaseNode, args: T.Tuple[str, T.List[build.Target]],
if len(args) < 2: kwargs: 'TYPE_kwargs') -> build.AliasTarget:
raise InvalidCode('alias_target takes at least 2 arguments.') name, deps = args
name = args[0]
if not isinstance(name, str):
raise InterpreterException('First argument must be a string.')
deps = listify(args[1:])
for d in deps:
if not isinstance(d, (build.BuildTarget, build.CustomTarget)):
raise InterpreterException('Depends items must be build targets.')
tg = build.AliasTarget(name, deps, self.subdir, self.subproject) tg = build.AliasTarget(name, deps, self.subdir, self.subproject)
self.add_target(name, tg) self.add_target(name, tg)
return tg return tg

Loading…
Cancel
Save