From: Amaury Forgeot d'Arc Date: Thu, 19 Aug 2010 22:29:49 +0000 (+0000) Subject: The 3.1 compiler don't check for keyword assignments in all places. X-Git-Tag: v3.1.3rc1~315 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=72356338cb60198d45ebf6737bdc173088c38a17;p=python 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" --- 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