From 72356338cb60198d45ebf6737bdc173088c38a17 Mon Sep 17 00:00:00 2001 From: Amaury Forgeot d'Arc Date: Thu, 19 Aug 2010 22:29:49 +0000 Subject: [PATCH] The 3.1 compiler don't check for keyword assignments in all places. Find another way to generate a SyntaxError in the tests. Previously, these statements would raise something strange like TypeError: "'int' object is not iterable" --- Lib/test/test_syntax.py | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py index be783c77c8..2afbb61764 100644 --- a/Lib/test/test_syntax.py +++ b/Lib/test/test_syntax.py @@ -478,32 +478,22 @@ SyntaxError: keyword argument repeated Corner-cases that used to fail to raise the correct error: - >>> def f(*, x=lambda __debug__:0): pass + >>> def f(*, x=lambda *:0): pass Traceback (most recent call last): - SyntaxError: assignment to keyword + SyntaxError: named arguments must follow bare * - >>> def f(*args:(lambda __debug__:0)): pass + >>> def f(*args:(lambda *:0)): pass Traceback (most recent call last): - SyntaxError: assignment to keyword + SyntaxError: named arguments must follow bare * - >>> def f(**kwargs:(lambda __debug__:0)): pass + >>> def f(**kwargs:(lambda *:0)): pass Traceback (most recent call last): - SyntaxError: assignment to keyword + SyntaxError: named arguments must follow bare * >>> with (lambda *:0): pass Traceback (most recent call last): SyntaxError: named arguments must follow bare * -Corner-cases that used to crash: - - >>> def f(**__debug__): pass - Traceback (most recent call last): - SyntaxError: assignment to keyword - - >>> def f(*xx, __debug__): pass - Traceback (most recent call last): - SyntaxError: assignment to keyword - """ import re -- 2.40.0