From 97ceed45d461f06a8df07619fc955f4f3d50fa51 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Fri, 6 Apr 2012 02:09:04 -0400
Subject: [PATCH] CompiledKernel: Provide error in case of unneeded keyword
 arguments.

---
 loopy/compiled.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/loopy/compiled.py b/loopy/compiled.py
index 125d07d72..c23e0b4f3 100644
--- a/loopy/compiled.py
+++ b/loopy/compiled.py
@@ -146,10 +146,12 @@ class CompiledKernel:
         outputs = []
         encountered_non_numpy = False
 
+        kwargs_copy = kwargs.copy()
+
         for arg in self.kernel.args:
             is_written = arg.name in self.kernel.get_written_variables()
 
-            val = kwargs.get(arg.name)
+            val = kwargs_copy.pop(arg.name, None)
             if val is None:
                 if not is_written:
                     raise TypeError("must supply input argument '%s'" % arg.name)
@@ -181,6 +183,9 @@ class CompiledKernel:
             else:
                 args.append(val)
 
+        assert not kwargs_copy, (
+                "extra arguments: "+", ".join(kwargs_copy.iterkeys()))
+
         evt = self.cl_kernel(queue,
                 self.global_size_func(**domain_parameters),
                 self.local_size_func(**domain_parameters),
-- 
GitLab