summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Mueller <30130371+cdce8p@users.noreply.github.com>2021-08-12 19:10:15 +0200
committerPierre Sassoulas <pierre.sassoulas@gmail.com>2021-08-12 19:22:13 +0200
commit0b9e449111cbf59d23c23a1a98eea67ddd56ddf6 (patch)
tree00e3ca37c0a33fef0865e05b9e30f2865c41091b
parentbad3bdebffc3fb7732bbfb4eb6b67f9052a5dfd4 (diff)
downloadpylint-git-0b9e449111cbf59d23c23a1a98eea67ddd56ddf6.tar.gz
Fix false-positive used-before-assignment with := in Return node
-rw-r--r--ChangeLog4
-rw-r--r--pylint/checkers/variables.py1
-rw-r--r--tests/functional/a/assign/assignment_expression.py5
3 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 2c90999d3..8bdec24c3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -114,6 +114,10 @@ Release date: TBA
Closes #3839
+* Fix false-positive ``used-before-assignment`` with an assignment expression in a ``Return`` node
+
+ Closes #4828
+
What's New in Pylint 2.9.6?
===========================
diff --git a/pylint/checkers/variables.py b/pylint/checkers/variables.py
index 7009bfd5e..89d98067b 100644
--- a/pylint/checkers/variables.py
+++ b/pylint/checkers/variables.py
@@ -1464,6 +1464,7 @@ class VariablesChecker(BaseChecker):
astroid.AnnAssign,
astroid.AugAssign,
astroid.Expr,
+ astroid.Return,
),
)
and isinstance(defstmt.value, astroid.IfExp)
diff --git a/tests/functional/a/assign/assignment_expression.py b/tests/functional/a/assign/assignment_expression.py
index a2a586e53..4bb41f1a6 100644
--- a/tests/functional/a/assign/assignment_expression.py
+++ b/tests/functional/a/assign/assignment_expression.py
@@ -84,3 +84,8 @@ l3 += (
def func2():
return f'The number {(count := 4)} ' \
f'is equal to {count}'
+
+
+# https://github.com/PyCQA/pylint/issues/4828
+def func3():
+ return bar if (bar := "") else ""