From: Nick Coghlan Date: Mon, 23 Apr 2007 11:05:01 +0000 (+0000) Subject: Allow decorators and return annotations to be used together (fixes SF#1697248) X-Git-Tag: v3.0a1~1040 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=71011e2c2b6511e14099d0a02d8c137bb22784ad;p=python Allow decorators and return annotations to be used together (fixes SF#1697248) --- diff --git a/Lib/test/test_grammar.py b/Lib/test/test_grammar.py index bd04735dab..85be05bc81 100644 --- a/Lib/test/test_grammar.py +++ b/Lib/test/test_grammar.py @@ -322,7 +322,12 @@ class GrammarTests(unittest.TestCase): self.assertEquals(f.__annotations__, {'b': 1, 'c': 2, 'e': 3, 'g': 6, 'h': 7, 'j': 9, 'k': 11, 'return': 12}) - + # Check for SF Bug #1697248 - mixing decorators and a return annotation + def null(x): return x + @null + def f(x) -> list: pass + self.assertEquals(f.__annotations__, {'return': list}) + # test MAKE_CLOSURE with a variety of oparg's closure = 1 def f(): return closure diff --git a/Python/ast.c b/Python/ast.c index 1bd1430fdf..f8bcdf291a 100644 --- a/Python/ast.c +++ b/Python/ast.c @@ -983,7 +983,7 @@ ast_for_funcdef(struct compiling *c, const node *n) REQ(n, funcdef); - if (NCH(n) == 6) { /* decorators are present */ + if (NCH(n) == 6 || NCH(n) == 8) { /* decorators are present */ decorator_seq = ast_for_decorators(c, CHILD(n, 0)); if (!decorator_seq) return NULL;