Skip to content

Conversation

@Adist319
Copy link
Contributor

@Adist319 Adist319 commented Jan 8, 2026

Fix incorrect "unreachable" warning for else clause in for-else blocks when the loop body always terminates but the iterable may be empty.

Resolves #2020.

  • Added 3 test cases in flow_looping.rs:
    • test_for_else_return_in_body_else_reachable - else is reachable when iterable may be empty
    • test_for_definitely_runs_return_else_unreachable - else is unreachable when iterable is definitely non-empty (e.g., range(3))
    • test_for_else_both_return_complete - function is complete when both paths return

@meta-cla meta-cla bot added the cla signed label Jan 8, 2026
@github-actions

This comment has been minimized.

@github-actions
Copy link

github-actions bot commented Jan 8, 2026

Diff from mypy_primer, showing the effect of this PR on open source code:

archinstall (https://github.com/archlinux/archinstall)
- ERROR archinstall/lib/disk/disk_menu.py:242:3-14: This `return` statement is unreachable [unreachable]
- ::error file=archinstall/lib/disk/disk_menu.py,line=242,col=3,endLine=242,endColumn=14,title=Pyrefly unreachable::This `return` statement is unreachable

Tanjun (https://github.com/FasterSpeeding/Tanjun)
- ERROR tanjun/components.py:1299:9-21: This `return` statement is unreachable [unreachable]
- ::error file=tanjun/components.py,line=1299,col=9,endLine=1299,endColumn=21,title=Pyrefly unreachable::This `return` statement is unreachable

black (https://github.com/psf/black)
- ERROR src/blib2to3/pytree.py:941:13-24: This `yield` expression is unreachable [unreachable]
- ::error file=src/blib2to3/pytree.py,line=941,col=13,endLine=941,endColumn=24,title=Pyrefly unreachable::This `yield` expression is unreachable

dulwich (https://github.com/dulwich/dulwich)
- ERROR dulwich/config.py:1408:9-56: This `yield` expression is unreachable [unreachable]
- ERROR dulwich/config.py:1409:9-15: This `return` statement is unreachable [unreachable]
- ::error file=dulwich/config.py,line=1408,col=9,endLine=1408,endColumn=56,title=Pyrefly unreachable::This `yield` expression is unreachable
- ::error file=dulwich/config.py,line=1409,col=9,endLine=1409,endColumn=15,title=Pyrefly unreachable::This `return` statement is unreachable

colour (https://github.com/colour-science/colour)
- ERROR colour/utilities/network.py:666:9-27: This `return` statement is unreachable [unreachable]
- ::error file=colour/utilities/network.py,line=666,col=9,endLine=666,endColumn=27,title=Pyrefly unreachable::This `return` statement is unreachable

Expression (https://github.com/cognitedata/Expression)
- ERROR expression/collections/map.py:158:13-25: This `return` statement is unreachable [unreachable]
- ERROR expression/collections/maptree.py:180:9-23: This `return` statement is unreachable [unreachable]
- ERROR expression/collections/maptree.py:301:25-37: This `return` statement is unreachable [unreachable]
- ERROR expression/collections/maptree.py:303:25-36: This `return` statement is unreachable [unreachable]
- ERROR expression/collections/maptree.py:306:25-52: This `return` statement is unreachable [unreachable]
- ERROR expression/collections/maptree.py:314:21-29: This `return` statement is unreachable [unreachable]
- ERROR expression/collections/maptree.py:319:21-33: This `return` statement is unreachable [unreachable]
- ERROR expression/collections/maptree.py:324:21-29: This `return` statement is unreachable [unreachable]
- ERROR expression/collections/maptree.py:330:17-25: This `return` statement is unreachable [unreachable]
- ::error file=expression/collections/map.py,line=158,col=13,endLine=158,endColumn=25,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=expression/collections/maptree.py,line=180,col=9,endLine=180,endColumn=23,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=expression/collections/maptree.py,line=301,col=25,endLine=301,endColumn=37,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=expression/collections/maptree.py,line=303,col=25,endLine=303,endColumn=36,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=expression/collections/maptree.py,line=306,col=25,endLine=306,endColumn=52,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=expression/collections/maptree.py,line=314,col=21,endLine=314,endColumn=29,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=expression/collections/maptree.py,line=319,col=21,endLine=319,endColumn=33,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=expression/collections/maptree.py,line=324,col=21,endLine=324,endColumn=29,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=expression/collections/maptree.py,line=330,col=17,endLine=330,endColumn=25,title=Pyrefly unreachable::This `return` statement is unreachable

more-itertools (https://github.com/more-itertools/more-itertools)
- ERROR more_itertools/more.py:268:5-19: This `return` statement is unreachable [unreachable]
- ERROR more_itertools/more.py:627:9-21: This `return` statement is unreachable [unreachable]
- ERROR more_itertools/more.py:3093:9-20: This `return` statement is unreachable [unreachable]
- ERROR more_itertools/more.py:3099:9-20: This `return` statement is unreachable [unreachable]
- ERROR more_itertools/more.py:3100:5-17: This `return` statement is unreachable [unreachable]
- ERROR more_itertools/more.py:3560:9-21: This `return` statement is unreachable [unreachable]
- ERROR more_itertools/more.py:3561:5-19: This `return` statement is unreachable [unreachable]
- ERROR more_itertools/recipes.py:230:9-20: This `return` statement is unreachable [unreachable]
- ERROR more_itertools/recipes.py:231:5-16: This `return` statement is unreachable [unreachable]
- ::error file=more_itertools/more.py,line=268,col=5,endLine=268,endColumn=19,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=more_itertools/more.py,line=627,col=9,endLine=627,endColumn=21,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=more_itertools/more.py,line=3093,col=9,endLine=3093,endColumn=20,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=more_itertools/more.py,line=3099,col=9,endLine=3099,endColumn=20,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=more_itertools/more.py,line=3100,col=5,endLine=3100,endColumn=17,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=more_itertools/more.py,line=3560,col=9,endLine=3560,endColumn=21,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=more_itertools/more.py,line=3561,col=5,endLine=3561,endColumn=19,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=more_itertools/recipes.py,line=230,col=9,endLine=230,endColumn=20,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=more_itertools/recipes.py,line=231,col=5,endLine=231,endColumn=16,title=Pyrefly unreachable::This `return` statement is unreachable

mkosi (https://github.com/systemd/mkosi)
- ERROR mkosi/__init__.py:2149:13-24: This `return` statement is unreachable [unreachable]
- ::error file=mkosi/__init__.py,line=2149,col=13,endLine=2149,endColumn=24,title=Pyrefly unreachable::This `return` statement is unreachable

poetry (https://github.com/python-poetry/poetry)
- ERROR src/poetry/utils/_compat.py:32:5-56: This `return` statement is unreachable [unreachable]
- ERROR src/poetry/utils/_compat.py:45:5-56: This `return` statement is unreachable [unreachable]
- ERROR src/poetry/utils/env/base_env.py:334:9-21: This `return` statement is unreachable [unreachable]
- ERROR src/poetry/utils/env/python/manager.py:240:13-38: This `return` statement is unreachable [unreachable]
- ERROR src/poetry/utils/env/python/manager.py:242:9-20: This `return` statement is unreachable [unreachable]
- ERROR src/poetry/utils/env/site_packages.py:113:9-20: This `return` statement is unreachable [unreachable]
- ERROR src/poetry/utils/helpers.py:345:5-21: This `return` statement is unreachable [unreachable]
- ::error file=src/poetry/utils/_compat.py,line=32,col=5,endLine=32,endColumn=56,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=src/poetry/utils/_compat.py,line=45,col=5,endLine=45,endColumn=56,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=src/poetry/utils/env/base_env.py,line=334,col=9,endLine=334,endColumn=21,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=src/poetry/utils/env/python/manager.py,line=240,col=13,endLine=240,endColumn=38,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=src/poetry/utils/env/python/manager.py,line=242,col=9,endLine=242,endColumn=20,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=src/poetry/utils/env/site_packages.py,line=113,col=9,endLine=113,endColumn=20,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=src/poetry/utils/helpers.py,line=345,col=5,endLine=345,endColumn=21,title=Pyrefly unreachable::This `return` statement is unreachable

mongo-python-driver (https://github.com/mongodb/mongo-python-driver)
- ERROR gridfs/asynchronous/grid_file.py:348:9-20: This `return` statement is unreachable [unreachable]
- ERROR gridfs/synchronous/grid_file.py:346:9-20: This `return` statement is unreachable [unreachable]
- ERROR pymongo/asynchronous/collection.py:1758:9-20: This `return` statement is unreachable [unreachable]
- ERROR pymongo/synchronous/collection.py:1757:9-20: This `return` statement is unreachable [unreachable]
- ::error file=gridfs/asynchronous/grid_file.py,line=348,col=9,endLine=348,endColumn=20,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=gridfs/synchronous/grid_file.py,line=346,col=9,endLine=346,endColumn=20,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=pymongo/asynchronous/collection.py,line=1758,col=9,endLine=1758,endColumn=20,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=pymongo/synchronous/collection.py,line=1757,col=9,endLine=1757,endColumn=20,title=Pyrefly unreachable::This `return` statement is unreachable

rotki (https://github.com/rotki/rotki)
- ERROR rotkehlchen/tasks/manager.py:399:9-20: This `return` statement is unreachable [unreachable]
- ERROR rotkehlchen/tasks/manager.py:461:9-20: This `return` statement is unreachable [unreachable]
- ::error file=rotkehlchen/tasks/manager.py,line=399,col=9,endLine=399,endColumn=20,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=rotkehlchen/tasks/manager.py,line=461,col=9,endLine=461,endColumn=20,title=Pyrefly unreachable::This `return` statement is unreachable

materialize (https://github.com/MaterializeInc/materialize)
- ERROR misc/python/materialize/mzcompose/composition.py:1097:13-121: This `return` statement is unreachable [unreachable]
- ERROR misc/python/materialize/mzcompose/composition.py:1110:13-136: This `return` statement is unreachable [unreachable]
- ERROR misc/python/materialize/mzcompose/composition.py:1112:9-20: This `return` statement is unreachable [unreachable]
- ::error file=misc/python/materialize/mzcompose/composition.py,line=1097,col=13,endLine=1097,endColumn=121,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=misc/python/materialize/mzcompose/composition.py,line=1110,col=13,endLine=1110,endColumn=136,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=misc/python/materialize/mzcompose/composition.py,line=1112,col=9,endLine=1112,endColumn=20,title=Pyrefly unreachable::This `return` statement is unreachable

setuptools (https://github.com/pypa/setuptools)
- ERROR setuptools/_vendor/inflect/__init__.py:2766:13-45: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2771:13-45: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2779:13-70: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2784:13-68: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2791:13-2794:14: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2797:13-37: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2801:17-34: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2803:17-42: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2810:21-38: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2813:21-38: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2814:13-37: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2816:13-38: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2820:17-42: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2821:13-30: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2823:13-39: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2825:13-39: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2827:13-38: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2829:13-39: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2832:13-26: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2837:13-24: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2839:13-35: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2841:13-36: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2855:25-52: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2861:17-41: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2863:17-34: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2865:17-41: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2883:29-56: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2891:25-52: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2896:13-31: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2900:17-35: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2903:13-31: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2908:21-39: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2911:17-36: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2916:21-38: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2919:13-31: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2924:13-37: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2926:13-37: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2928:13-37: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2930:13-37: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2936:17-34: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2940:21-38: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2942:13-37: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2947:13-30: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2951:17-34: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2954:13-30: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2957:13-31: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:2961:9-26: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3259:13-61: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3264:13-61: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3272:13-71: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3276:13-74: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3283:13-3286:14: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3289:13-35: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3292:13-29: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3294:13-38: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3301:21-37: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3304:21-37: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3306:13-37: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3308:13-39: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3312:17-43: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3314:13-39: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3316:13-39: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3318:13-38: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3321:13-25: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3326:13-24: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3328:13-36: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3342:25-58: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3348:17-39: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3350:17-33: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3352:17-39: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3372:29-62: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3381:13-29: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3386:13-29: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3395:13-29: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3400:13-29: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3403:13-29: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3407:17-33: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3410:13-29: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3413:13-29: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3416:13-29: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3419:13-29: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3422:13-29: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3425:13-29: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3428:13-29: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3431:13-29: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3436:13-29: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3440:17-39: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3442:17-39: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3444:17-40: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3446:17-39: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3452:17-33: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3456:21-37: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3459:13-35: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3465:17-33: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3469:21-37: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3472:17-33: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3475:13-29: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3480:13-36: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3485:13-29: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/inflect/__init__.py:3489:9-21: This `return` statement is unreachable [unreachable]
- ERROR setuptools/_vendor/more_itertools/more.py:221:5-19: This `return` statement is unreachable [unreachable]
- ERROR setuptools/dist.py:855:13-66: This `return` statement is unreachable [unreachable]
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2766,col=13,endLine=2766,endColumn=45,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2771,col=13,endLine=2771,endColumn=45,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2779,col=13,endLine=2779,endColumn=70,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2784,col=13,endLine=2784,endColumn=68,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2791,col=13,endLine=2794,endColumn=14,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2797,col=13,endLine=2797,endColumn=37,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2801,col=17,endLine=2801,endColumn=34,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2803,col=17,endLine=2803,endColumn=42,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2810,col=21,endLine=2810,endColumn=38,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2813,col=21,endLine=2813,endColumn=38,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2814,col=13,endLine=2814,endColumn=37,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2816,col=13,endLine=2816,endColumn=38,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2820,col=17,endLine=2820,endColumn=42,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2821,col=13,endLine=2821,endColumn=30,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2823,col=13,endLine=2823,endColumn=39,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2825,col=13,endLine=2825,endColumn=39,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2827,col=13,endLine=2827,endColumn=38,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2829,col=13,endLine=2829,endColumn=39,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2832,col=13,endLine=2832,endColumn=26,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2837,col=13,endLine=2837,endColumn=24,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2839,col=13,endLine=2839,endColumn=35,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2841,col=13,endLine=2841,endColumn=36,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2855,col=25,endLine=2855,endColumn=52,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2861,col=17,endLine=2861,endColumn=41,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2863,col=17,endLine=2863,endColumn=34,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2865,col=17,endLine=2865,endColumn=41,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2883,col=29,endLine=2883,endColumn=56,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2891,col=25,endLine=2891,endColumn=52,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2896,col=13,endLine=2896,endColumn=31,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2900,col=17,endLine=2900,endColumn=35,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=setuptools/_vendor/inflect/__init__.py,line=2903,col=13,endLine=2903,endColumn=31,title=Pyrefly unreachable::This `return` statement is unreachable

... (truncated 71 lines) ...

mypy (https://github.com/python/mypy)
- ERROR mypy/plugins/enums.py:70:5-16: This `return` statement is unreachable [unreachable]
- ::error file=mypy/plugins/enums.py,line=70,col=5,endLine=70,endColumn=16,title=Pyrefly unreachable::This `return` statement is unreachable

pywin32 (https://github.com/mhammond/pywin32)
- ERROR com/win32comext/adsi/demos/search.py:51:5-16: This `return` statement is unreachable [unreachable]
- ::error file=com/win32comext/adsi/demos/search.py,line=51,col=5,endLine=51,endColumn=16,title=Pyrefly unreachable::This `return` statement is unreachable

pwndbg (https://github.com/pwndbg/pwndbg)
- ERROR pwndbg/aglib/disasm/disassembly.py:200:5-16: This `return` statement is unreachable [unreachable]
+ ERROR pwndbg/aglib/disasm/disassembly.py:200:12-16: Returned type `None` is not assignable to declared return type `PwndbgInstruction` [bad-return]
- ERROR pwndbg/aglib/disasm/disassembly.py:236:5-16: This `return` statement is unreachable [unreachable]
- ::error file=pwndbg/aglib/disasm/disassembly.py,line=200,col=5,endLine=200,endColumn=16,title=Pyrefly unreachable::This `return` statement is unreachable
+ ::error file=pwndbg/aglib/disasm/disassembly.py,line=200,col=12,endLine=200,endColumn=16,title=Pyrefly bad-return::Returned type `None` is not assignable to declared return type `PwndbgInstruction`%0A  Protocol `PwndbgInstruction` requires attribute `cs_insn`
- ::error file=pwndbg/aglib/disasm/disassembly.py,line=236,col=5,endLine=236,endColumn=16,title=Pyrefly unreachable::This `return` statement is unreachable

starlette (https://github.com/encode/starlette)
- ERROR tests/middleware/test_base.py:721:13-24: This `return` statement is unreachable [unreachable]
- ERROR tests/middleware/test_base.py:750:13-24: This `return` statement is unreachable [unreachable]
- ::error file=tests/middleware/test_base.py,line=721,col=13,endLine=721,endColumn=24,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=tests/middleware/test_base.py,line=750,col=13,endLine=750,endColumn=24,title=Pyrefly unreachable::This `return` statement is unreachable

meson (https://github.com/mesonbuild/meson)
- ERROR mesonbuild/backend/backends.py:1094:13-32: This `return` statement is unreachable [unreachable]
- ERROR mesonbuild/backend/backends.py:1096:9-20: This `return` statement is unreachable [unreachable]
- ERROR mesonbuild/compilers/rust.py:453:13-22: This `return` statement is unreachable [unreachable]
- ::error file=mesonbuild/backend/backends.py,line=1094,col=13,endLine=1094,endColumn=32,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=mesonbuild/backend/backends.py,line=1096,col=9,endLine=1096,endColumn=20,title=Pyrefly unreachable::This `return` statement is unreachable
- ::error file=mesonbuild/compilers/rust.py,line=453,col=13,endLine=453,endColumn=22,title=Pyrefly unreachable::This `return` statement is unreachable

antidote (https://github.com/Finistere/antidote)
- ERROR src/antidote/_internal/typing.py:71:5-16: This `return` statement is unreachable [unreachable]
- ::error file=src/antidote/_internal/typing.py,line=71,col=5,endLine=71,endColumn=16,title=Pyrefly unreachable::This `return` statement is unreachable

Copy link
Contributor

@rchen152 rchen152 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, thanks!

@meta-codesync
Copy link

meta-codesync bot commented Jan 8, 2026

@rchen152 has imported this pull request. If you are a Meta employee, you can view this in D90292601.

Copy link
Contributor

@kinto0 kinto0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review automatically exported from Phabricator review in Meta.

@meta-codesync
Copy link

meta-codesync bot commented Jan 8, 2026

@rchen152 merged this pull request in e7fc1fd.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Incorrect unreachable statement warning

4 participants