Mercurial > cpython-lru_cache-weakref
diff Lib/compiler/pycodegen.py @ 33166:2e8d2bdd33de legacy-trunk
This is Mark Russell's patch:
[ 1009560 ] Fix @decorator evaluation order
From the description:
Changes in this patch:
- Change Grammar/Grammar to require
newlines between adjacent decorators.
- Fix order of evaluation of decorators
in the C (compile.c) and python
(Lib/compiler/pycodegen.py) compilers
- Add better order of evaluation check
to test_decorators.py (test_eval_order)
- Update the decorator documentation in
the reference manual (improve description
of evaluation order and update syntax
description)
and the comment:
Used Brett's evaluation order (see
http://mail.python.org/pipermail/python-dev/2004-August/047835.html)
(I'm checking this in for Anthony who was having problems getting SF to
talk to him)
| author | Michael W. Hudson <mwh@python.net> |
|---|---|
| date | Tue, 17 Aug 2004 17:29:16 +0000 |
| parents | ad818338f8c3 |
| children | c18aca7e81cb |
line wrap: on
line diff
--- a/Lib/compiler/pycodegen.py Tue Aug 17 16:37:12 2004 +0000 +++ b/Lib/compiler/pycodegen.py Tue Aug 17 17:29:16 2004 +0000 @@ -367,12 +367,12 @@ def _visitFuncOrLambda(self, node, isLambda=0): if not isLambda and node.decorators: - for decorator in reversed(node.decorators.nodes): + for decorator in node.decorators.nodes: self.visit(decorator) ndecorators = len(node.decorators.nodes) else: ndecorators = 0 - + gen = self.FunctionGen(node, self.scopes, isLambda, self.class_name, self.get_module()) walk(node.code, gen)
