diff options
author | Marc Mueller <30130371+cdce8p@users.noreply.github.com> | 2021-04-07 00:37:16 +0200 |
---|---|---|
committer | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2021-04-07 18:56:50 +0200 |
commit | 628c266c0a2b0a0498d78d8a9a01704557e46c00 (patch) | |
tree | 701cb8b21baae8bd222d15cce41fe4b51736c293 /tests | |
parent | 8f84dec53d53b8297ef753277fc1d820becd8428 (diff) | |
download | pylint-git-628c266c0a2b0a0498d78d8a9a01704557e46c00.tar.gz |
Fix false-positive used-before-assignment in function returns
Diffstat (limited to 'tests')
-rw-r--r-- | tests/functional/a/assignment_expression.py | 25 | ||||
-rw-r--r-- | tests/functional/a/assignment_expression.txt | 7 |
2 files changed, 19 insertions, 13 deletions
diff --git a/tests/functional/a/assignment_expression.py b/tests/functional/a/assignment_expression.py index aa6a27874..a2a586e53 100644 --- a/tests/functional/a/assignment_expression.py +++ b/tests/functional/a/assignment_expression.py @@ -1,5 +1,6 @@ """Test assignment expressions""" -# pylint: disable=missing-docstring,unused-argument,unused-import,invalid-name,blacklisted-name,unused-variable +# pylint: disable=missing-docstring,unused-argument,unused-import,invalid-name +# pylint: disable=blacklisted-name,unused-variable,pointless-statement import re if (a := True): @@ -16,6 +17,15 @@ a = ["a ", "b ", "c "] c = [text for el in a if (text := el.strip()) == "b"] +# check wrong usage +assert err_a, (err_a := 2) # [used-before-assignment] +print(err_b and (err_b := 2)) # [used-before-assignment] +values = ( + err_c := err_d, # [used-before-assignment] + err_d := 2, +) + + # https://github.com/PyCQA/pylint/issues/3347 s = 'foo' if (fval := lambda: 1) is None else fval @@ -53,7 +63,7 @@ print(function()) # https://github.com/PyCQA/pylint/issues/3763 -foo if (foo := 3 - 2) > 0 else 0 # [pointless-statement] +foo if (foo := 3 - 2) > 0 else 0 # https://github.com/PyCQA/pylint/issues/4238 @@ -70,10 +80,7 @@ l3 += ( ) -# check wrong usage -assert err_a, (err_a := 2) # [used-before-assignment] -print(err_b and (err_b := 2)) # [used-before-assignment] -values = ( - err_c := err_d, # [used-before-assignment] - err_d := 2, -) +# https://github.com/PyCQA/pylint/issues/4301 +def func2(): + return f'The number {(count := 4)} ' \ + f'is equal to {count}' diff --git a/tests/functional/a/assignment_expression.txt b/tests/functional/a/assignment_expression.txt index 1be4c1389..c4b8da483 100644 --- a/tests/functional/a/assignment_expression.txt +++ b/tests/functional/a/assignment_expression.txt @@ -1,4 +1,3 @@ -pointless-statement:56:0::Statement seems to have no effect -used-before-assignment:74:7::Using variable 'err_a' before assignment -used-before-assignment:75:6::Using variable 'err_b' before assignment -used-before-assignment:77:13::Using variable 'err_d' before assignment +used-before-assignment:21:7::Using variable 'err_a' before assignment +used-before-assignment:22:6::Using variable 'err_b' before assignment +used-before-assignment:24:13::Using variable 'err_d' before assignment |