Merge pull request #79 from reventlov/fix_traverse_ir_test

Fix `traverse_ir_test` by using `varkw` instead of `kwonlyargs`.
diff --git a/compiler/util/traverse_ir.py b/compiler/util/traverse_ir.py
index c9ff71a..fc04ba8 100644
--- a/compiler/util/traverse_ir.py
+++ b/compiler/util/traverse_ir.py
@@ -22,7 +22,7 @@
 def _call_with_optional_args(function, positional_arg, keyword_args):
   """Calls function with whatever keyword_args it will accept."""
   argspec = inspect.getfullargspec(function)
-  if argspec.kwonlyargs:
+  if argspec.varkw:
     # If the function accepts a kwargs parameter, then it will accept all
     # arguments.
     # Note: this isn't technically true if one of the keyword arguments has the
@@ -31,7 +31,7 @@
   else:
     ok_arguments = {}
     for name in keyword_args:
-      if name in argspec.args[1:]:
+      if name in argspec.args[1:] or name in argspec.kwonlyargs:
         ok_arguments[name] = keyword_args[name]
     for name in argspec.args[1:len(argspec.args) - len(argspec.defaults or [])]:
       assert name in ok_arguments, (