]> granicus.if.org Git - python/commitdiff
The 3.1 compiler don't check for keyword assignments in all places.
authorAmaury Forgeot d'Arc <amauryfa@gmail.com>
Thu, 19 Aug 2010 22:29:49 +0000 (22:29 +0000)
committerAmaury Forgeot d'Arc <amauryfa@gmail.com>
Thu, 19 Aug 2010 22:29:49 +0000 (22:29 +0000)
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

index be783c77c823627b76795be2bd1bcd25451a3c8f..2afbb6176402d410d3332b5837fc7aaa0152d533 100644 (file)
@@ -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