summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2008-06-08 23:00:00 (GMT)
committerBenjamin Peterson <benjamin@python.org>2008-06-08 23:00:00 (GMT)
commitf4fcdb6b8c0ee8bc4d2eee5ea3b848a4cd905ad6 (patch)
tree48d3512e81c0fe025d864ec2790d55a059aeeda1
parentd5efd2040642d08e64011fb6e81193002269aad4 (diff)
downloadcpython-f4fcdb6b8c0ee8bc4d2eee5ea3b848a4cd905ad6.zip
cpython-f4fcdb6b8c0ee8bc4d2eee5ea3b848a4cd905ad6.tar.gz
cpython-f4fcdb6b8c0ee8bc4d2eee5ea3b848a4cd905ad6.tar.bz2
warn about parameter tuple unpacking
-rw-r--r--Lib/test/test_py3kwarn.py6
-rw-r--r--Python/ast.c3
2 files changed, 9 insertions, 0 deletions
diff --git a/Lib/test/test_py3kwarn.py b/Lib/test/test_py3kwarn.py
index 18298fe..768be28 100644
--- a/Lib/test/test_py3kwarn.py
+++ b/Lib/test/test_py3kwarn.py
@@ -173,6 +173,12 @@ class TestPy3KWarnings(unittest.TestCase):
with catch_warning() as w:
self.assertWarning(set(), w, expected)
+ def test_tuple_parameter_unpacking(self):
+ expected = "tuple parameter unpacking has been removed in 3.x"
+ with catch_warning() as w:
+ exec "def f((a, b)): pass"
+ self.assertWarning(None, w, expected)
+
def test_buffer(self):
expected = 'buffer() not supported in 3.x; use memoryview()'
with catch_warning() as w:
diff --git a/Python/ast.c b/Python/ast.c
index ab166e8..ef0d8be 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -701,6 +701,9 @@ ast_for_arguments(struct compiling *c, const node *n)
/* def foo((x)): is not complex, special case. */
if (NCH(ch) != 1) {
/* We have complex arguments, setup for unpacking. */
+ if (Py_Py3kWarningFlag && !ast_warn(c, ch,
+ "tuple parameter unpacking has been removed in 3.x"))
+ goto error;
asdl_seq_SET(args, k++, compiler_complex_args(c, ch));
if (!asdl_seq_GET(args, k-1))
goto error;