]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-43755: Update docs to reflect that lambda is not allowed in `comp_if` since 3...
authorSaiyang Gou <gousaiyang@163.com>
Tue, 6 Apr 2021 22:15:37 +0000 (15:15 -0700)
committerGitHub <noreply@github.com>
Tue, 6 Apr 2021 22:15:37 +0000 (23:15 +0100)
Doc/reference/expressions.rst
Doc/whatsnew/3.9.rst
Misc/NEWS.d/next/Documentation/2021-04-06-14-55-45.bpo-43755.1m0fGq.rst [new file with mode: 0644]

index 17705b117c372b83089e568ae3ea97657a2243b3..4b4c20b8d5e286902fb048180f7061bac82f6c72 100644 (file)
@@ -185,7 +185,7 @@ Common syntax elements for comprehensions are:
    comprehension: `assignment_expression` `comp_for`
    comp_for: ["async"] "for" `target_list` "in" `or_test` [`comp_iter`]
    comp_iter: `comp_for` | `comp_if`
-   comp_if: "if" `expression_nocond` [`comp_iter`]
+   comp_if: "if" `or_test` [`comp_iter`]
 
 The comprehension consists of a single expression followed by at least one
 :keyword:`!for` clause and zero or more :keyword:`!for` or :keyword:`!if` clauses.
@@ -1707,7 +1707,6 @@ Conditional expressions
 .. productionlist:: python-grammar
    conditional_expression: `or_test` ["if" `or_test` "else" `expression`]
    expression: `conditional_expression` | `lambda_expr`
-   expression_nocond: `or_test` | `lambda_expr_nocond`
 
 Conditional expressions (sometimes called a "ternary operator") have the lowest
 priority of all Python operations.
@@ -1733,7 +1732,6 @@ Lambdas
 
 .. productionlist:: python-grammar
    lambda_expr: "lambda" [`parameter_list`] ":" `expression`
-   lambda_expr_nocond: "lambda" [`parameter_list`] ":" `expression_nocond`
 
 Lambda expressions (sometimes called lambda forms) are used to create anonymous
 functions. The expression ``lambda parameters: expression`` yields a function
index 3086930569dc9884886f19f27ab9f9d342e3983f..24c72ee0ea8a7a0b795c778ba85655d8bf26a05a 100644 (file)
@@ -267,6 +267,10 @@ Other Language Changes
   :func:`~operator.countOf` of the :mod:`operator` module.
   (Contributed by Serhiy Storchaka in :issue:`40824`.)
 
+* Unparenthesized lambda expressions can no longer be the expression part in an
+  ``if`` clause in comprehensions and generator expressions. See :issue:`41848`
+  and :issue:`43755` for details.
+
 
 New Modules
 ===========
diff --git a/Misc/NEWS.d/next/Documentation/2021-04-06-14-55-45.bpo-43755.1m0fGq.rst b/Misc/NEWS.d/next/Documentation/2021-04-06-14-55-45.bpo-43755.1m0fGq.rst
new file mode 100644 (file)
index 0000000..53cba0b
--- /dev/null
@@ -0,0 +1,3 @@
+Update documentation to reflect that unparenthesized lambda expressions can
+no longer be the expression part in an ``if`` clause in comprehensions and
+generator expressions since Python 3.9.