-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
With Pylint 3.2.4 and Python 3.8 getting incorrect error W0101: Unreachable code (unreachable) #9751
Comments
Pylint 3.2.4 has a bug: pylint-dev/pylint#9751 PiperOrigin-RevId: 646934310
Pylint 3.2.4 incorrectly reports code as unreachable. pylint-dev/pylint#9751 PiperOrigin-RevId: 646934310
Pylint 3.2.4 incorrectly reports code as unreachable. pylint-dev/pylint#9751 PiperOrigin-RevId: 646937406
I don't have access to laptop right now, but can somebody bisect if this is due to #9714? |
Seeing the same in QEMU's tests: under Python 3.9 through 3.12 inclusive, there's no issue. Python 3.8 with 3.1.1, 3.2.0, 3.2.1, 3.2.2, 3.2.3 all work correctly. This only seems to surface directly under pylint 3.2.4 and python 3.8. Python 3.7 and earlier untested. Bisecting confirms commit c41c35a here's a somewhat minimized reproducer: I tried testing it one function at a time, but could only trigger it in the caller to import json
import subprocess
from typing import Any
def qemu_tool(
*args: str,
check: bool = True,
combine_stdio: bool = True
) -> 'subprocess.CompletedProcess[str]':
subp = subprocess.run(
args,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT if combine_stdio else subprocess.PIPE,
universal_newlines=True,
check=False
)
if check and subp.returncode or (subp.returncode < 0):
raise subprocess.CalledProcessError(
subp.returncode, args,
output=subp.stdout,
stderr=subp.stderr,
)
return subp
def qemu_img(
*args: str,
check: bool = True,
combine_stdio: bool = True
) -> 'subprocess.CompletedProcess[str]':
full_args = ['qemu-img'] + list(args)
return qemu_tool(*full_args, check=check, combine_stdio=combine_stdio)
def qemu_img_json(*args: str) -> Any:
try:
res = qemu_img(*args, combine_stdio=False)
except subprocess.CalledProcessError as exc:
if exc.returncode < 0:
raise
try:
return json.loads(exc.stdout)
except json.JSONDecodeError:
pass
raise
return json.loads(res.stdout)
def qemu_img_info(*args: str) -> Any:
ret = qemu_img_json('info', "--output", "json", *args)
print("hello?") # repro.py:50:4: W0101: Unreachable code (unreachable)
return ret ... If I had to guess, it's because |
Yup. Here's a much shorter reproducer: from typing import Any
def repro() -> Any:
return 5
def main():
x = repro() + 5
print(x) |
There is a bug in this version, see: pylint-dev/pylint#9751 Signed-off-by: John Snow <[email protected]> Message-Id: <[email protected]>
Refs #9751 Co-authored-by: John Snow <[email protected]>
Refs #9751 Co-authored-by: John Snow <[email protected]>
Refs #9751 Co-authored-by: John Snow <[email protected]>
Refs #9751 Co-authored-by: John Snow <[email protected]> (cherry picked from commit d281f2f)
Big thankyou to everyone for getting this resolved so quickly. |
Refs #9751 Co-authored-by: John Snow <[email protected]> (cherry picked from commit d281f2f) Co-authored-by: Pierre Sassoulas <[email protected]>
There is a bug in this version, see: pylint-dev/pylint#9751 Signed-off-by: John Snow <[email protected]> Message-Id: <[email protected]> Signed-off-by: Alex Bennée <[email protected]>
There is a bug in this version, see: pylint-dev/pylint#9751 Signed-off-by: John Snow <[email protected]> Reviewed-by: Alex Bennée <[email protected]> Message-Id: <[email protected]>
There is a bug in this version, see: pylint-dev/pylint#9751 Signed-off-by: John Snow <[email protected]> Reviewed-by: Alex Bennée <[email protected]> Message-Id: <[email protected]>
There is a bug in this version, see: pylint-dev/pylint#9751 Signed-off-by: John Snow <[email protected]> Reviewed-by: Alex Bennée <[email protected]> Message-id: [email protected] Signed-off-by: John Snow <[email protected]> Message-Id: <[email protected]>
There is a bug in this version, see: pylint-dev/pylint#9751 Signed-off-by: John Snow <[email protected]> Reviewed-by: Alex Bennée <[email protected]> Message-id: [email protected] Signed-off-by: John Snow <[email protected]>
Bug description
When using pylint 3.2.4 I'm getting "W0101: Unreachable code (unreachable" errors but only for Python 3.8. They do not happen for Python 3.9 to 3.12.
See https://github.com/BittyTax/BittyTax/actions/runs/9677156397/job/26698206145.
Worked fine for pylint 3.2.3, see https://github.com/BittyTax/BittyTax/actions/runs/9667255227/job/26668643763.
Command used
pylint $(git ls-files '*.py')
Pylint output
Expected behavior
No errors and per pylint 3.2.3.
Pylint version
OS / Environment
Ubuntu 22.04.4 LTS
The text was updated successfully, but these errors were encountered: