diff options
-rw-r--r-- | mako/ast.py | 2 | ||||
-rw-r--r-- | mako/pyparser.py | 7 |
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 |