From 491c756dc99fa4b126ddcbbee7de149d47c9199f Mon Sep 17 00:00:00 2001
From: Dylan Baker <dylan@pnwbakers.com>
Date: Tue, 1 Jun 2021 20:59:38 -0700
Subject: interpreter: use typed_kwargs for func_generator

Do the type checking in a nice tidy way
---
 mesonbuild/interpreter/interpreter.py | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

(limited to 'mesonbuild/interpreter/interpreter.py')

diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py
index 3c69edf..f2b1bd9 100644
--- a/mesonbuild/interpreter/interpreter.py
+++ b/mesonbuild/interpreter/interpreter.py
@@ -1955,8 +1955,17 @@ This will become a hard error in the future.''' % kwargs['input'], location=self
     @permittedKwargs({'arguments', 'output', 'depends', 'depfile', 'capture',
                       'preserve_path_from'})
     @typed_pos_args('generator', (ExecutableHolder, ExternalProgramHolder))
-    def func_generator(self, node: mparser.FunctionNode, args: T.Tuple[T.Union[ExecutableHolder, ExternalProgramHolder]],
-                       kwargs) -> GeneratorHolder:
+    @typed_kwargs(
+        'generator',
+        KwargInfo('arguments', ContainerTypeInfo(list, str, allow_empty=False), required=True, listify=True),
+        KwargInfo('output', ContainerTypeInfo(list, str, allow_empty=False), required=True, listify=True),
+        KwargInfo('depfile', str),
+        KwargInfo('capture', bool, default=False, since='0.43.0'),
+        KwargInfo('depends', ContainerTypeInfo(list, (BuildTargetHolder, CustomTargetHolder)), default=[], listify=True),
+    )
+    def func_generator(self, node: mparser.FunctionNode,
+                       args: T.Tuple[T.Union[ExecutableHolder, ExternalProgramHolder]],
+                       kwargs: 'kwargs.FuncGenerator') -> GeneratorHolder:
         gen = build.Generator(args[0].held_object, kwargs)
         holder = GeneratorHolder(self, gen, self)
         self.generators.append(holder)
-- 
cgit v1.1