Open
Description
Bug description
This issue is similar to #4828 and #8125, but seems to be different
The dictionary is fine when used alone, but when used with some function, the used-before-assignment code occurs.
Like issue #8425
test code
print({
# used-before-assignment
"key": test1 if (test1 := "var") else ""
})
dict({
# used-before-assignment
"key": test2 if (test2 := "var") else ""
})
{
# normal
"key": test3 if (test3 := "var") else ""
}
Configuration
No response
Command used
pylint test.py --disable=W0104,C0114
Pylint output
************* Module test
test.py:3:11: E0601: Using variable 'test1' before assignment (used-before-assignment)
test.py:8:11: E0601: Using variable 'test2' before assignment (used-before-assignment)
------------------------------------------------------------------
Your code has been rated at 0.00/10 (previous run: 0.00/10, +0.00)
Expected behavior
no error
Pylint version
pylint 2.17.1
astroid 2.15.0
Python 3.11.1
OS / Environment
No response
Additional dependencies
No response