aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mako/ast.py2
-rw-r--r--mako/pyparser.py7
2 files changed, 7 insertions, 2 deletions
diff --git a/mako/ast.py b/mako/ast.py
index 3713cc3..8f711b4 100644
--- a/mako/ast.py
+++ b/mako/ast.py
@@ -169,7 +169,7 @@ class FunctionDecl(object):
@property
def allargnames(self):
- return self.argnames + self.kwargnames
+ return tuple(self.argnames) + tuple(self.kwargnames)
class FunctionArgs(FunctionDecl):
"""the argument portion of a function declaration"""
diff --git a/mako/pyparser.py b/mako/pyparser.py
index 2744022..aa2d882 100644
--- a/mako/pyparser.py
+++ b/mako/pyparser.py
@@ -379,8 +379,13 @@ else:
def visitFunction(self, node, *args):
self.listener.funcname = node.name
- self.listener.argnames = node.argnames
+ self.listener.argnames = list(node.argnames)
+ if node.kwargs:
+ self.listener.kwargnames = [self.listener.argnames.pop()]
+ else:
+ self.listener.kwargnames = []
self.listener.defaults = node.defaults
+ self.listener.kwdefaults = []
self.listener.varargs = node.varargs
self.listener.kwargs = node.kwargs