Skip to content

[ty] Model bool-op branch snapshots#24458

Merged
carljm merged 4 commits intoastral-sh:mainfrom
tamird:correctly-model-short-circuiting-control-flow
Apr 27, 2026
Merged

[ty] Model bool-op branch snapshots#24458
carljm merged 4 commits intoastral-sh:mainfrom
tamird:correctly-model-short-circuiting-control-flow

Conversation

@tamird
Copy link
Copy Markdown
Contributor

@tamird tamird commented Apr 6, 2026

Summary

Cache truthy and falsy branch-entry snapshots for boolean tests with
named expressions, and restore them when entering if and elif
branches. The merged post-test flow is too weak for cases like
if flag and (x := 1):, where the branch body is reachable only when
the named expression executed.

Fixes astral-sh/ty#626.

@astral-sh-bot astral-sh-bot Bot added the ty Multi-file analysis & type inference label Apr 6, 2026
@AlexWaygood AlexWaygood changed the title Model bool-op branch snapshots [ty] Model bool-op branch snapshots Apr 6, 2026
@astral-sh-bot
Copy link
Copy Markdown

astral-sh-bot Bot commented Apr 6, 2026

Typing conformance results

No changes detected ✅

Current numbers
The percentage of diagnostics emitted that were expected errors held steady at 88.13%. The percentage of expected errors that received a diagnostic held steady at 83.58%. The number of fully passing files held steady at 81/134.

@astral-sh-bot
Copy link
Copy Markdown

astral-sh-bot Bot commented Apr 6, 2026

Memory usage report

Memory usage unchanged ✅

@astral-sh-bot
Copy link
Copy Markdown

astral-sh-bot Bot commented Apr 6, 2026

ecosystem-analyzer results

Lint rule Added Removed Changed
possibly-unresolved-reference 0 1,497 0
invalid-argument-type 0 2 0
unused-ignore-comment 2 0 0
Total 2 1,499 0

Showing a random sample of 452 of 1501 changes. See the HTML report for the full diff.

Raw diff sample (452 of 1501 changes)
CPython (peg_generator) (https://github.com/python/cpython)
- Tools/peg_generator/pegen/grammar_parser.py:66:30 warning[possibly-unresolved-reference] Name `rules` used when possibly not defined
- Tools/peg_generator/pegen/grammar_parser.py:84:29 warning[possibly-unresolved-reference] Name `metas` used when possibly not defined
- Tools/peg_generator/pegen/grammar_parser.py:104:22 warning[possibly-unresolved-reference] Name `name` used when possibly not defined
- Tools/peg_generator/pegen/grammar_parser.py:115:22 warning[possibly-unresolved-reference] Name `a` used when possibly not defined
- Tools/peg_generator/pegen/grammar_parser.py:258:34 warning[possibly-unresolved-reference] Name `alts` used when possibly not defined
- Tools/peg_generator/pegen/grammar_parser.py:336:35 warning[possibly-unresolved-reference] Name `items` used when possibly not defined
- Tools/peg_generator/pegen/grammar_parser.py:361:48 warning[possibly-unresolved-reference] Name `item` used when possibly not defined
- Tools/peg_generator/pegen/grammar_parser.py:361:55 warning[possibly-unresolved-reference] Name `annotation` used when possibly not defined
- Tools/peg_generator/pegen/grammar_parser.py:460:26 warning[possibly-unresolved-reference] Name `alts` used when possibly not defined
- Tools/peg_generator/pegen/grammar_parser.py:564:20 warning[possibly-unresolved-reference] Name `target_atoms` used when possibly not defined

Tanjun (https://github.com/FasterSpeeding/Tanjun)
- tanjun/_internal/cache.py:82:24 warning[possibly-unresolved-reference] Name `channel` used when possibly not defined
- tanjun/dependencies/locales.py:140:20 warning[possibly-unresolved-reference] Name `string` used when possibly not defined
- tanjun/dependencies/locales.py:143:20 warning[possibly-unresolved-reference] Name `string` used when possibly not defined
- tanjun/clients.py:1540:17 warning[possibly-unresolved-reference] Name `command_` used when possibly not defined
- tanjun/clients.py:2379:30 warning[possibly-unresolved-reference] Name `user_cache` used when possibly not defined
- tanjun/clients.py:2400:40 warning[possibly-unresolved-reference] Name `event_type` used when possibly not defined
- tanjun/parsing.py:588:92 error[invalid-argument-type] Argument to bound method `Parameter.convert` is incorrect: Expected `str`, found `str | None`

aiohttp (https://github.com/aio-libs/aiohttp)
- aiohttp/abc.py:183:33 warning[possibly-unresolved-reference] Name `cookies_to_update` used when possibly not defined
- aiohttp/connector.py:755:20 warning[possibly-unresolved-reference] Name `conns` used when possibly not defined
- aiohttp/http_writer.py:287:34 warning[possibly-unresolved-reference] Name `compressed_chunk` used when possibly not defined

altair (https://github.com/vega/altair)
- altair/datasets/_reader.py:333:20 warning[possibly-unresolved-reference] Name `schema` used when possibly not defined
- altair/datasets/_reader.py:333:47 warning[possibly-unresolved-reference] Name `schema` used when possibly not defined

artigraph (https://github.com/artigraph/artigraph)
- src/arti/views/__init__.py:102:55 warning[possibly-unresolved-reference] Name `origin` used when possibly not defined

async-utils (https://github.com/mikeshardmind/async-utils)
- src/async_utils/merge_gens.py:99:29 warning[possibly-unresolved-reference] Name `exc` used when possibly not defined

bidict (https://github.com/jab/bidict)
- bidict/_orderedbidict.py:175:24 warning[possibly-unresolved-reference] Name `arg` used when possibly not defined

bokeh (https://github.com/bokeh/bokeh)
- src/bokeh/layouts.py:646:33 warning[possibly-unresolved-reference] Name `tool` used when possibly not defined
- src/bokeh/models/renderers/glyph_renderer.py:95:47 warning[possibly-unresolved-reference] Name `field` used when possibly not defined
- src/bokeh/models/renderers/glyph_renderer.py:98:46 warning[possibly-unresolved-reference] Name `field` used when possibly not defined

core (https://github.com/home-assistant/core)
- homeassistant/components/backup/event.py:53:13 warning[possibly-unresolved-reference] Name `event` used when possibly not defined
- homeassistant/components/backup/event.py:56:37 warning[possibly-unresolved-reference] Name `event` used when possibly not defined
- homeassistant/components/decora_wifi/light.py:67:61 warning[possibly-unresolved-reference] Name `reason` used when possibly not defined
- homeassistant/components/device_tracker/config_entry.py:432:45 warning[possibly-unresolved-reference] Name `device_entry` used when possibly not defined
- homeassistant/components/device_tracker/config_entry.py:438:55 warning[possibly-unresolved-reference] Name `device_entry` used when possibly not defined
- homeassistant/components/device_tracker/config_entry.py:440:17 warning[possibly-unresolved-reference] Name `device_entry` used when possibly not defined
- homeassistant/components/esphome/dashboard.py:68:72 warning[possibly-unresolved-reference] Name `info` used when possibly not defined
- homeassistant/components/esphome/dashboard.py:78:47 warning[possibly-unresolved-reference] Name `info` used when possibly not defined
- homeassistant/components/filter/sensor.py:342:44 warning[possibly-unresolved-reference] Name `size` used when possibly not defined
- homeassistant/components/filter/sensor.py:347:43 warning[possibly-unresolved-reference] Name `val` used when possibly not defined
- homeassistant/components/history/websocket_api.py:253:40 warning[possibly-unresolved-reference] Name `state_last_time` used when possibly not defined
- homeassistant/components/history_stats/data.py:140:21 warning[possibly-unresolved-reference] Name `new_state` used when possibly not defined
- homeassistant/components/history_stats/data.py:143:38 warning[possibly-unresolved-reference] Name `new_state` used when possibly not defined
- homeassistant/components/history_stats/data.py:143:55 warning[possibly-unresolved-reference] Name `new_state` used when possibly not defined
- homeassistant/components/integration/sensor.py:143:27 warning[possibly-unresolved-reference] Name `right_dec` used when possibly not defined
- homeassistant/components/intent/timers.py:302:34 warning[possibly-unresolved-reference] Name `area` used when possibly not defined
- homeassistant/components/intent/timers.py:628:61 warning[possibly-unresolved-reference] Name `area` used when possibly not defined
- homeassistant/components/lock/__init__.py:304:50 warning[possibly-unresolved-reference] Name `custom_default_lock_code` used when possibly not defined
- homeassistant/components/logbook/helpers.py:221:53 warning[possibly-unresolved-reference] Name `new_state` used when possibly not defined
- homeassistant/components/logbook/helpers.py:267:41 warning[possibly-unresolved-reference] Name `attributes` used when possibly not defined
- homeassistant/components/lutron_caseta/device_trigger.py:383:19 warning[possibly-unresolved-reference] Name `keypad` used when possibly not defined
- homeassistant/components/lutron_caseta/device_trigger.py:386:37 warning[possibly-unresolved-reference] Name `keypad` used when possibly not defined
- homeassistant/components/lutron_caseta/device_trigger.py:414:37 warning[possibly-unresolved-reference] Name `keypad` used when possibly not defined
- homeassistant/components/mobile_app/logbook.py:52:25 warning[possibly-unresolved-reference] Name `zone_state` used when possibly not defined
- homeassistant/components/mobile_app/sensor.py:128:20 warning[possibly-unresolved-reference] Name `timestamp` used when possibly not defined
- homeassistant/components/modbus/fan.py:31:67 warning[possibly-unresolved-reference] Name `fans` used when possibly not defined
- homeassistant/components/modbus/light.py:49:69 warning[possibly-unresolved-reference] Name `lights` used when possibly not defined
- homeassistant/components/mqtt/binary_sensor.py:115:32 warning[possibly-unresolved-reference] Name `last_state` used when possibly not defined
- homeassistant/components/mqtt/number.py:77:60 warning[possibly-unresolved-reference] Name `unit_of_measurement` used when possibly not defined
- homeassistant/components/mqtt/select.py:151:41 warning[possibly-unresolved-reference] Name `last_state` used when possibly not defined
- homeassistant/components/mqtt/sensor.py:219:29 warning[possibly-unresolved-reference] Name `last_state` used when possibly not defined
- homeassistant/components/mqtt/switch.py:145:32 warning[possibly-unresolved-reference] Name `last_state` used when possibly not defined
- homeassistant/components/mqtt/vacuum.py:307:30 warning[possibly-unresolved-reference] Name `segments` used when possibly not defined
- homeassistant/components/netgear_lte/services.py:76:15 warning[possibly-unresolved-reference] Name `modem` used when possibly not defined
- homeassistant/components/nws/sensor.py:239:16 warning[possibly-unresolved-reference] Name `value` used when possibly not defined
- homeassistant/components/peblar/number.py:89:17 warning[possibly-unresolved-reference] Name `last_number_data` used when possibly not defined
- homeassistant/components/person/__init__.py:536:31 warning[possibly-unresolved-reference] Name `home_zone` used when possibly not defined
- homeassistant/components/recorder/migration.py:1405:57 warning[possibly-unresolved-reference] Name `last_run_string` used when possibly not defined
- homeassistant/components/recorder/purge.py:614:32 warning[possibly-unresolved-reference] Name `excluded_event_type_ids` used when possibly not defined
- homeassistant/components/recorder/purge.py:702:45 warning[possibly-unresolved-reference] Name `state_ids` used when possibly not defined
- homeassistant/components/recorder/websocket_api.py:223:41 warning[possibly-unresolved-reference] Name `last_reset` used when possibly not defined
- homeassistant/components/rehlko/binary_sensor.py:175:34 warning[possibly-unresolved-reference] Name `parameters` used when possibly not defined
- homeassistant/components/search/__init__.py:597:49 warning[possibly-unresolved-reference] Name `device_entry` used when possibly not defined
- homeassistant/components/sleep_as_android/sensor.py:79:25 warning[possibly-unresolved-reference] Name `alarm_time` used when possibly not defined
- homeassistant/components/sleep_as_android/sensor.py:84:43 warning[possibly-unresolved-reference] Name `label` used when possibly not defined
- homeassistant/components/stream/hls.py:358:33 warning[possibly-unresolved-reference] Name `body` used when possibly not defined
- homeassistant/components/switch_as_x/entity.py:51:33 warning[possibly-unresolved-reference] Name `device` used when possibly not defined
- homeassistant/components/switch_as_x/valve.py:93:36 warning[possibly-unresolved-reference] Name `state` used when possibly not defined
- homeassistant/components/systemmonitor/config_flow.py:47:42 warning[possibly-unresolved-reference] Name `entity_id` used when possibly not defined
- homeassistant/components/tag/__init__.py:221:35 warning[possibly-unresolved-reference] Name `entity` used when possibly not defined
- homeassistant/components/tag/__init__.py:337:20 warning[possibly-unresolved-reference] Name `entity` used when possibly not defined
- homeassistant/components/template/config_flow.py:476:17 warning[possibly-unresolved-reference] Name `unit` used when possibly not defined
- homeassistant/components/template/weather.py:642:45 warning[possibly-unresolved-reference] Name `weather_data` used when possibly not defined
- homeassistant/components/template/weather.py:644:44 warning[possibly-unresolved-reference] Name `weather_data` used when possibly not defined
- homeassistant/components/tesla_fleet/sensor.py:528:64 warning[possibly-unresolved-reference] Name `last_reset` used when possibly not defined
- homeassistant/components/timer/__init__.py:282:49 warning[possibly-unresolved-reference] Name `state` used when possibly not defined
- homeassistant/components/wled/light.py:148:52 warning[possibly-unresolved-reference] Name `color_modes` used when possibly not defined
- homeassistant/helpers/device.py:70:21 warning[possibly-unresolved-reference] Name `device` used when possibly not defined
- homeassistant/helpers/normalized_name_base_registry.py:55:55 warning[possibly-unresolved-reference] Name `normalized_name` used when possibly not defined
- homeassistant/helpers/template/helpers.py:65:24 warning[possibly-unresolved-reference] Name `device` used when possibly not defined
- homeassistant/components/analytics/analytics.py:308:20 warning[possibly-unresolved-reference] Name `supervisor_info` used when possibly not defined
- homeassistant/components/apple_tv/media_player.py:444:19 warning[possibly-unresolved-reference] Name `repeat` used when possibly not defined
- homeassistant/components/assist_pipeline/pipeline.py:1363:23 warning[possibly-unresolved-reference] Name `target_entity_entry` used when possibly not defined
- homeassistant/components/assist_pipeline/pipeline.py:1364:25 warning[possibly-unresolved-reference] Name `target_entity_entry` used when possibly not defined
- homeassistant/components/autoskope/device_tracker.py:74:17 warning[possibly-unresolved-reference] Name `device_entry` used when possibly not defined
- homeassistant/components/backup/manager.py:1232:67 warning[possibly-unresolved-reference] Name `err` used when possibly not defined
- homeassistant/components/backup/manager.py:1234:62 warning[possibly-unresolved-reference] Name `err` used when possibly not defined
- homeassistant/components/bluetooth/__init__.py:343:33 warning[possibly-unresolved-reference] Name `via_device_entry` used when possibly not defined
- homeassistant/components/bluetooth/match.py:264:32 warning[possibly-unresolved-reference] Name `local_name_matchers` used when possibly not defined
- homeassistant/components/bluetooth/match.py:275:42 warning[possibly-unresolved-reference] Name `matched_uuids` used when possibly not defined
- homeassistant/components/bluetooth/websocket_api.py:294:38 warning[possibly-unresolved-reference] Name `matching_scanners` used when possibly not defined
- homeassistant/components/bring/services.py:66:27 warning[possibly-unresolved-reference] Name `entity` used when possibly not defined
- homeassistant/components/caldav/todo.py:81:13 warning[possibly-unresolved-reference] Name `uid` used when possibly not defined
- homeassistant/components/caldav/todo.py:84:28 warning[possibly-unresolved-reference] Name `todo` used when possibly not defined
- homeassistant/components/calendar/__init__.py:173:75 warning[possibly-unresolved-reference] Name `end` used when possibly not defined
- homeassistant/components/camera/__init__.py:237:16 warning[possibly-unresolved-reference] Name `image` used when possibly not defined
- homeassistant/components/camera/webrtc.py:358:40 warning[possibly-unresolved-reference] Name `stream_source` used when possibly not defined
- homeassistant/components/casper_glow/select.py:57:66 warning[possibly-unresolved-reference] Name `last_state` used when possibly not defined
- homeassistant/components/cast/media_player.py:817:17 warning[possibly-unresolved-reference] Name `cast_status` used when possibly not defined
- homeassistant/components/cloud/client.py:395:36 warning[possibly-unresolved-reference] Name `region` used when possibly not defined
- homeassistant/components/cloud/entity.py:331:42 warning[possibly-unresolved-reference] Name `match` used when possibly not defined
- homeassistant/components/conversation/default_agent.py:853:28 warning[possibly-unresolved-reference] Name `combo_responses` used when possibly not defined
- homeassistant/components/conversation/default_agent.py:1451:23 warning[possibly-unresolved-reference] Name `device_entry` used when possibly not defined
- homeassistant/components/deconz/light.py:277:40 warning[possibly-unresolved-reference] Name `sat` used when possibly not defined
- homeassistant/components/deconz/sensor.py:373:60 warning[possibly-unresolved-reference] Name `unique_id` used when possibly not defined
- homeassistant/components/devolo_home_network/device_tracker.py:70:71 warning[possibly-unresolved-reference] Name `mac_address` used when possibly not defined
- homeassistant/components/discord/config_flow.py:42:33 warning[possibly-unresolved-reference] Name `entry` used when possibly not defined
- homeassistant/components/dlna_dms/config_flow.py:54:43 warning[possibly-unresolved-reference] Name `host` used when possibly not defined
- homeassistant/components/droplet/config_flow.py:113:27 warning[possibly-unresolved-reference] Name `device_id` used when possibly not defined
- homeassistant/components/ecovacs/sensor.py:290:53 warning[possibly-unresolved-reference] Name `native_unit_of_measurement` used when possibly not defined
- homeassistant/components/elmax/config_flow.py:534:20 warning[possibly-unresolved-reference] Name `abort_result` used when possibly not defined
- homeassistant/components/elvia/importer.py:121:17 warning[possibly-unresolved-reference] Name `from_time` used when possibly not defined
- homeassistant/components/enphase_envoy/coordinator.py:309:21 warning[possibly-unresolved-reference] Name `new_firmware` used when possibly not defined
- homeassistant/components/esphome/climate.py:262:22 warning[possibly-unresolved-reference] Name `val` used when possibly not defined
- homeassistant/components/esphome/coordinator.py:50:32 warning[possibly-unresolved-reference] Name `current_version` used when possibly not defined
- homeassistant/components/esphome/manager.py:781:53 warning[possibly-unresolved-reference] Name `unique_id` used when possibly not defined
- homeassistant/components/esphome/manager.py:841:27 warning[possibly-unresolved-reference] Name `stored_key` used when possibly not defined
- homeassistant/components/fish_audio/config_flow.py:332:43 warning[possibly-unresolved-reference] Name `backend` used when possibly not defined
- homeassistant/components/frontier_silicon/media_player.py:385:43 warning[possibly-unresolved-reference] Name `mode` used when possibly not defined
- homeassistant/components/google/calendar.py:521:17 warning[possibly-unresolved-reference] Name `raw_rule` used when possibly not defined
- homeassistant/components/google_mail/sensor.py:48:48 warning[possibly-unresolved-reference] Name `end` used when possibly not defined
- homeassistant/components/habitica/sensor.py:468:30 warning[possibly-unresolved-reference] Name `_class` used when possibly not defined
- homeassistant/components/habitica/sensor.py:475:20 warning[possibly-unresolved-reference] Name `img_url` used when possibly not defined
- homeassistant/components/hassio/discovery.py:63:20 warning[possibly-unresolved-reference] Name `key` used when possibly not defined
- homeassistant/components/home_connect/climate.py:242:33 warning[possibly-unresolved-reference] Name `option_constraints` used when possibly not defined
- homeassistant/components/home_connect/coordinator.py:633:47 warning[possibly-unresolved-reference] Name `event` used when possibly not defined
- homeassistant/components/home_connect/fan.py:165:47 warning[possibly-unresolved-reference] Name `allowed_values_without_none` used when possibly not defined
- homeassistant/components/home_connect/select.py:590:46 warning[possibly-unresolved-reference] Name `option_constraints` used when possibly not defined
- homeassistant/components/homekit/__init__.py:1130:45 warning[possibly-unresolved-reference] Name `battery_sensor_entity_id` used when possibly not defined
- homeassistant/components/homekit/doorbell.py:98:71 warning[possibly-unresolved-reference] Name `new_state` used when possibly not defined
- homeassistant/components/homekit/type_triggers.py:58:63 warning[possibly-unresolved-reference] Name `entry` used when possibly not defined
- homeassistant/components/huawei_lte/__init__.py:323:69 warning[possibly-unresolved-reference] Name `serial_number` used when possibly not defined
- homeassistant/components/imap/coordinator.py:375:17 warning[possibly-unresolved-reference] Name `message_ids` used when possibly not defined
- homeassistant/components/imap/coordinator.py:387:16 warning[possibly-unresolved-reference] Name `count` used when possibly not defined
- homeassistant/components/knx/climate.py:439:57 warning[possibly-unresolved-reference] Name `knx_controller_mode` used when possibly not defined
- homeassistant/components/knx/config_flow.py:137:20 warning[possibly-unresolved-reference] Name `knx_module` used when possibly not defined
- homeassistant/components/knx/date.py:88:39 warning[possibly-unresolved-reference] Name `last_state` used when possibly not defined
- homeassistant/components/knx/fan.py:73:13 warning[possibly-unresolved-reference] Name `new_uid_base` used when possibly not defined
- homeassistant/components/knx/number.py:92:51 warning[possibly-unresolved-reference] Name `last_number_data` used when possibly not defined
- homeassistant/components/knx/select.py:92:56 warning[possibly-unresolved-reference] Name `option` used when possibly not defined
- homeassistant/components/knx/sensor.py:184:39 warning[possibly-unresolved-reference] Name `last_sensor_data` used when possibly not defined
- homeassistant/components/knx/validation.py:268:61 warning[possibly-unresolved-reference] Name `d_c_units` used when possibly not defined
- homeassistant/components/lametric/config_flow.py:94:40 warning[possibly-unresolved-reference] Name `serial` used when possibly not defined
- homeassistant/components/lg_thinq/climate.py:361:21 warning[possibly-unresolved-reference] Name `temperature_high` used when possibly not defined
- homeassistant/components/lg_thinq/fan.py:133:18 warning[possibly-unresolved-reference] Name `mode` used when possibly not defined
- homeassistant/components/liebherr/select.py:196:79 warning[possibly-unresolved-reference] Name `zone_key` used when possibly not defined
- homeassistant/components/liebherr/switch.py:115:37 warning[possibly-unresolved-reference] Name `desc` used when possibly not defined
- homeassistant/components/liebherr/switch.py:242:79 warning[possibly-unresolved-reference] Name `zone_key` used when possibly not defined
- homeassistant/components/light/__init__.py:898:64 warning[possibly-unresolved-reference] Name `hs_color` used when possibly not defined
- homeassistant/components/light/__init__.py:901:62 warning[possibly-unresolved-reference] Name `xy_color` used when possibly not defined
- homeassistant/components/light/__init__.py:903:42 warning[possibly-unresolved-reference] Name `xy_color` used when possibly not defined
- homeassistant/components/light/__init__.py:907:63 warning[possibly-unresolved-reference] Name `rgb_color` used when possibly not defined
- homeassistant/components/light/__init__.py:914:59 warning[possibly-unresolved-reference] Name `rgbw_color` used when possibly not defined
- homeassistant/components/light/__init__.py:922:60 warning[possibly-unresolved-reference] Name `rgbww_color` used when possibly not defined
- homeassistant/components/light/__init__.py:927:59 warning[possibly-unresolved-reference] Name `color_temp_kelvin` used when possibly not defined
- homeassistant/components/logbook/processor.py:413:64 warning[possibly-unresolved-reference] Name `context_parent_id_bin` used when possibly not defined
- homeassistant/components/logbook/processor.py:416:55 warning[possibly-unresolved-reference] Name `context_parent_id_bin` used when possibly not defined
- homeassistant/components/logbook/processor.py:444:20 warning[possibly-unresolved-reference] Name `context_row` used when possibly not defined
- homeassistant/components/logbook/processor.py:525:38 warning[possibly-unresolved-reference] Name `friendly_name` used when possibly not defined
- homeassistant/components/lutron_caseta/__init__.py:468:30 warning[possibly-unresolved-reference] Name `keypad` used when possibly not defined
- homeassistant/components/lutron_caseta/__init__.py:473:33 warning[possibly-unresolved-reference] Name `keypad` used when possibly not defined
- homeassistant/components/lutron_caseta/__init__.py:474:33 warning[possibly-unresolved-reference] Name `keypad` used when possibly not defined
- homeassistant/components/matter/vacuum.py:264:16 warning[possibly-unresolved-reference] Name `current_segments` used when possibly not defined
- homeassistant/components/matter/vacuum.py:268:21 warning[possibly-unresolved-reference] Name `current_segments` used when possibly not defined
- homeassistant/components/media_player/__init__.py:624:20 warning[possibly-unresolved-reference] Name `volume_step` used when possibly not defined
- homeassistant/components/modbus/cover.py:42:69 warning[possibly-unresolved-reference] Name `covers` used when possibly not defined
- homeassistant/components/motioneye/__init__.py:446:47 warning[possibly-unresolved-reference] Name `entry` used when possibly not defined
- homeassistant/components/mqtt/discovery.py:146:45 warning[possibly-unresolved-reference] Name `support_url` used when possibly not defined
- homeassistant/components/mqtt/discovery.py:586:46 warning[possibly-unresolved-reference] Name `entity_id` used when possibly not defined
- homeassistant/components/mqtt/discovery.py:590:35 warning[possibly-unresolved-reference] Name `entity_entry` used when possibly not defined
- homeassistant/components/mqtt/discovery.py:591:41 warning[possibly-unresolved-reference] Name `entity_entry` used when possibly not defined
- homeassistant/components/nanoleaf/config_flow.py:150:47 warning[possibly-unresolved-reference] Name `host_conf` used when possibly not defined
- homeassistant/components/nederlandse_spoorwegen/sensor.py:46:47 warning[possibly-unresolved-reference] Name `trip_parts` used when possibly not defined
- homeassistant/components/onedrive/__init__.py:144:76 warning[possibly-unresolved-reference] Name `minor_version` used when possibly not defined
- homeassistant/components/onedrive/coordinator.py:94:24 warning[possibly-unresolved-reference] Name `state` used when possibly not defined
- homeassistant/components/openai_conversation/ai_task.py:137:34 warning[possibly-unresolved-reference] Name `output_format` used when possibly not defined
- homeassistant/components/overkiz/climate/atlantic_heat_recovery_ventilation.py:74:32 warning[possibly-unresolved-reference] Name `temperature` used when possibly not defined
- homeassistant/components/overkiz/climate/atlantic_pass_apc_zone_control_zone.py:178:53 warning[possibly-unresolved-reference] Name `state` used when possibly not defined
- homeassistant/components/overkiz/climate/somfy_heating_temperature_interface.py:176:20 warning[possibly-unresolved-reference] Name `temperature` used when possibly not defined
- homeassistant/components/prometheus/__init__.py:1045:19 warning[possibly-unresolved-reference] Name `value` used when possibly not defined
- homeassistant/components/proximity/coordinator.py:301:21 warning[possibly-unresolved-reference] Name `new_state` used when possibly not defined
- homeassistant/components/proximity/coordinator.py:305:21 warning[possibly-unresolved-reference] Name `new_state` used when possibly not defined
- homeassistant/components/radarr/helpers.py:56:73 warning[possibly-unresolved-reference] Name `url` used when possibly not defined
- homeassistant/components/rainforest_raven/coordinator.py:98:39 warning[possibly-unresolved-reference] Name `mac_address` used when possibly not defined
- homeassistant/components/recorder/core.py:305:27 warning[possibly-unresolved-reference] Name `entity_id` used when possibly not defined
- homeassistant/components/recorder/core.py:311:28 warning[possibly-unresolved-reference] Name `entity_id` used when possibly not defined
- homeassistant/components/recorder/pool.py:87:13 warning[possibly-unresolved-reference] Name `conn` used when possibly not defined
- homeassistant/components/recorder/statistics.py:423:12 warning[possibly-unresolved-reference] Name `converter` used when possibly not defined
- homeassistant/components/recorder/statistics.py:1552:29 warning[possibly-unresolved-reference] Name `new_min` used when possibly not defined
- homeassistant/components/roborock/image.py:100:31 warning[possibly-unresolved-reference] Name `map_content` used when possibly not defined
- homeassistant/components/samsungtv/bridge.py:696:21 warning[possibly-unresolved-reference] Name `message` used when possibly not defined
- homeassistant/components/samsungtv/config_flow.py:357:37 warning[possibly-unresolved-reference] Name `token` used when possibly not defined
- homeassistant/components/samsungtv/config_flow.py:358:42 warning[possibly-unresolved-reference] Name `session_id` used when possibly not defined
- homeassistant/components/screenlogic/number.py:160:43 warning[possibly-unresolved-reference] Name `max_val` used when possibly not defined
- homeassistant/components/screenlogic/number.py:168:38 warning[possibly-unresolved-reference] Name `step` used when possibly not defined
- homeassistant/components/sensibo/entity.py:50:46 warning[possibly-unresolved-reference] Name `value` used when possibly not defined
- homeassistant/components/sensor/__init__.py:553:24 warning[possibly-unresolved-reference] Name `suggested_unit_of_measurement` used when possibly not defined
- homeassistant/components/sensor/recorder.py:950:44 warning[possibly-unresolved-reference] Name `state_mean_type` used when possibly not defined
- homeassistant/components/shelly/coordinator.py:569:35 warning[possibly-unresolved-reference] Name `wakeup_period` used when possibly not defined
- homeassistant/components/shelly/utils.py:125:36 warning[possibly-unresolved-reference] Name `key` used when possibly not defined
- homeassistant/components/shelly/utils.py:784:20 warning[possibly-unresolved-reference] Name `zone` used when possibly not defined
- homeassistant/components/shelly/utils.py:992:48 warning[possibly-unresolved-reference] Name `key` used when possibly not defined
- homeassistant/components/slimproto/media_player.py:158:42 warning[possibly-unresolved-reference] Name `metadata` used when possibly not defined
- homeassistant/components/smartthings/media_player.py:264:16 warning[possibly-unresolved-reference] Name `track_data` used when possibly not defined
- homeassistant/components/smartthings/switch.py:438:42 warning[possibly-unresolved-reference] Name `translation_key` used when possibly not defined
- homeassistant/components/sonarr/helpers.py:171:72 warning[possibly-unresolved-reference] Name `url` used when possibly not defined
- homeassistant/components/spotify/browse_media.py:246:12 warning[possibly-unresolved-reference] Name `entry` used when possibly not defined
- homeassistant/components/spotify/browse_media.py:378:21 warning[possibly-unresolved-reference] Name `artist` used when possibly not defined
- homeassistant/components/spotify/browse_media.py:379:21 warning[possibly-unresolved-reference] Name `artist` used when possibly not defined
- homeassistant/components/spotify/browse_media.py:386:21 warning[possibly-unresolved-reference] Name `show` used when possibly not defined
- homeassistant/components/sql/util.py:269:73 warning[possibly-unresolved-reference] Name `query_type` used when possibly not defined
- homeassistant/components/starline/account.py:32:12 warning[possibly-unresolved-reference] Name `parsed` used when possibly not defined
- homeassistant/components/steam_online/config_flow.py:140:58 warning[possibly-unresolved-reference] Name `entity_id` used when possibly not defined
- homeassistant/components/synology_dsm/repairs.py:118:30 warning[possibly-unresolved-reference] Name `entry_id` used when possibly not defined
- homeassistant/components/system_bridge/sensor.py:208:22 warning[possibly-unresolved-reference] Name `used` used when possibly not defined
- homeassistant/components/thread/dataset_store.py:516:12 warning[possibly-unresolved-reference] Name `entry` used when possibly not defined
- homeassistant/components/tibber/sensor.py:790:49 warning[possibly-unresolved-reference] Name `home_data` used when possibly not defined
- homeassistant/components/tibber/sensor.py:794:71 warning[possibly-unresolved-reference] Name `home_data` used when possibly not defined
- homeassistant/components/tibber/sensor.py:797:58 warning[possibly-unresolved-reference] Name `home_data` used when possibly not defined
- homeassistant/components/tibber/sensor.py:798:58 warning[possibly-unresolved-reference] Name `home_data` used when possibly not defined
- homeassistant/components/todoist/util.py:32:33 warning[possibly-unresolved-reference] Name `due_date` used when possibly not defined
- homeassistant/components/todoist/util.py:33:19 warning[possibly-unresolved-reference] Name `due_date` used when possibly not defined
- homeassistant/components/todoist/util.py:34:16 warning[possibly-unresolved-reference] Name `due_date` used when possibly not defined
- homeassistant/components/tplink/entity.py:398:21 warning[possibly-unresolved-reference] Name `desc` used when possibly not defined
- homeassistant/components/tts/__init__.py:1157:22 warning[possibly-unresolved-reference] Name `voice` used when possibly not defined
- homeassistant/components/tuya/event.py:183:40 warning[possibly-unresolved-reference] Name `event_data` used when possibly not defined
- homeassistant/components/tuya/humidifier.py:82:72 warning[possibly-unresolved-reference] Name `definition` used when possibly not defined
- homeassistant/components/unifiprotect/event.py:340:53 warning[possibly-unresolved-reference] Name `thumbnails` used when possibly not defined
- homeassistant/components/unifiprotect/event.py:354:39 warning[possibly-unresolved-reference] Name `thumbnails` used when possibly not defined
- homeassistant/components/vicare/entity.py:96:21 warning[possibly-unresolved-reference] Name `zigbee_ieee` used when possibly not defined
- homeassistant/components/vodafone_station/coordinator.py:125:17 warning[possibly-unresolved-reference] Name `update_time` used when possibly not defined
- homeassistant/components/webostv/media_player.py:158:17 warning[possibly-unresolved-reference] Name `state` used when possibly not defined
- homeassistant/components/websocket_api/connection.py:212:12 warning[possibly-unresolved-reference] Name `cur_id` used when possibly not defined
- homeassistant/components/websocket_api/http.py:265:12 warning[possibly-unresolved-reference] Name `queue_size` used when possibly not defined
- homeassistant/components/wiim/media_player.py:469:50 warning[possibly-unresolved-reference] Name `entity_id` used when possibly not defined
- homeassistant/components/workday/repairs.py:190:30 warning[possibly-unresolved-reference] Name `entry_id` used when possibly not defined
- homeassistant/components/xiaomi_miio/__init__.py:391:69 warning[possibly-unresolved-reference] Name `migrate_entity_name` used when possibly not defined
- homeassistant/components/yeelight/device.py:210:72 warning[possibly-unresolved-reference] Name `id_` used when possibly not defined
- homeassistant/components/zeroconf/discovery.py:377:17 warning[possibly-unresolved-reference] Name `homekit_discovery` used when possibly not defined
- homeassistant/components/zwave_js/__init__.py:410:36 warning[possibly-unresolved-reference] Name `model` used when possibly not defined
- homeassistant/components/zwave_js/__init__.py:924:20 warning[possibly-unresolved-reference] Name `device` used when possibly not defined
- homeassistant/components/zwave_js/api.py:2469:65 warning[possibly-unresolved-reference] Name `driver_progress` used when possibly not defined
- homeassistant/components/zwave_js/cover.py:203:30 warning[possibly-unresolved-reference] Name `current` used when possibly not defined
- homeassistant/components/zwave_js/event.py:106:38 warning[possibly-unresolved-reference] Name `notification_value` used when possibly not defined
- homeassistant/config_entries.py:620:31 warning[possibly-unresolved-reference] Name `handler` used when possibly not defined
- homeassistant/config_entries.py:1677:21 warning[possibly-unresolved-reference] Name `entry` used when possibly not defined
- homeassistant/data_entry_flow.py:527:13 warning[possibly-unresolved-reference] Name `progress_task` used when possibly not defined
- homeassistant/helpers/entity_registry.py:1647:28 warning[possibly-unresolved-reference] Name `name_unprefixed` used when possibly not defined
- homeassistant/helpers/llm.py:678:35 warning[possibly-unresolved-reference] Name `area_entry` used when possibly not defined
- homeassistant/helpers/llm.py:688:39 warning[possibly-unresolved-reference] Name `area_entry` used when possibly not defined
- homeassistant/helpers/llm.py:933:61 warning[possibly-unresolved-reference] Name `entity_entry` used when possibly not defined
- homeassistant/helpers/service.py:482:37 warning[possibly-unresolved-reference] Name `device` used when possibly not defined
- homeassistant/helpers/service.py:716:17 warning[possibly-unresolved-reference] Name `entity` used when possibly not defined
- homeassistant/helpers/storage.py:207:68 warning[possibly-unresolved-reference] Name `existing` used when possibly not defined
- homeassistant/helpers/template/states.py:405:31 warning[possibly-unresolved-reference] Name `unit` used when possibly not defined
- homeassistant/helpers/template/states.py:316:17 warning[possibly-unresolved-reference] Name `render_info` used when possibly not defined
- homeassistant/helpers/translation.py:126:51 warning[possibly-unresolved-reference] Name `integration` used when possibly not defined
- homeassistant/helpers/translation.py:203:39 warning[possibly-unresolved-reference] Name `component` used when possibly not defined

dd-trace-py (https://github.com/DataDog/dd-trace-py)
- ddtrace/contrib/internal/mcp/patch.py:222:58 warning[possibly-unresolved-reference] Name `headers` used when possibly not defined
- ddtrace/debugging/_function/discovery.py:289:62 warning[possibly-unresolved-reference] Name `code` used when possibly not defined
- ddtrace/internal/telemetry/writer.py:203:59 warning[possibly-unresolved-reference] Name `app_started` used when possibly not defined
- ddtrace/propagation/_database_monitoring.py:87:56 warning[possibly-unresolved-reference] Name `base_hash` used when possibly not defined

django-stubs (https://github.com/typeddjango/django-stubs)
- mypy_django_plugin/django/context.py:495:24 warning[possibly-unresolved-reference] Name `lookup_type` used when possibly not defined
- mypy_django_plugin/transformers/init_create.py:84:53 warning[possibly-unresolved-reference] Name `model_cls` used when possibly not defined
- mypy_django_plugin/transformers/managers.py:154:94 warning[possibly-unresolved-reference] Name `model_arg` used when possibly not defined
- mypy_django_plugin/transformers/manytoone.py:37:20 warning[possibly-unresolved-reference] Name `_To` used when possibly not defined
- mypy_django_plugin/transformers/querysets.py:1119:12 warning[possibly-unresolved-reference] Name `field_names` used when possibly not defined

egglog-python (https://github.com/egraphs-good/egglog-python)
- python/egglog/conversion.py:165:31 warning[possibly-unresolved-reference] Name `converter` used when possibly not defined
- python/egglog/conversion.py:167:51 warning[possibly-unresolved-reference] Name `converter` used when possibly not defined
- python/egglog/runtime.py:849:24 warning[possibly-unresolved-reference] Name `preserved_method` used when possibly not defined

freqtrade (https://github.com/freqtrade/freqtrade)
- freqtrade/resolvers/iresolver.py:71:38 warning[possibly-unresolved-reference] Name `extra` used when possibly not defined
- freqtrade/rpc/telegram.py:537:50 warning[possibly-unresolved-reference] Name `fiat_currency` used when possibly not defined

hydpy (https://github.com/hydpy-dev/hydpy)
- hydpy/models/sw1d_channel.py:1880:31 warning[possibly-unresolved-reference] Name `rd` used when possibly not defined
- hydpy/auxs/armatools.py:319:51 warning[possibly-unresolved-reference] Name `m` used when possibly not defined
- hydpy/auxs/armatools.py:321:60 warning[possibly-unresolved-reference] Name `m` used when possibly not defined
- hydpy/mypy_plugin.py:140:15 warning[possibly-unresolved-reference] Name `literal` used when possibly not defined
- hydpy/mypy_plugin.py:192:24 warning[possibly-unresolved-reference] Name `adder_inst` used when possibly not defined
- hydpy/mypy_plugin.py:193:26 warning[possibly-unresolved-reference] Name `adder_args` used when possibly not defined
- hydpy/mypy_plugin.py:268:47 warning[possibly-unresolved-reference] Name `model_map` used when possibly not defined
- hydpy/mypy_plugin.py:287:21 warning[possibly-unresolved-reference] Name `member_expr` used when possibly not defined
- hydpy/mypy_plugin.py:304:16 warning[possibly-unresolved-reference] Name `vars_inst` used when possibly not defined
- hydpy/mypy_plugin.py:333:41 warning[possibly-unresolved-reference] Name `subvars_inst` used when possibly not defined
- hydpy/mypy_plugin.py:349:66 warning[possibly-unresolved-reference] Name `var_data` used when possibly not defined
- hydpy/mypy_plugin.py:358:59 warning[possibly-unresolved-reference] Name `model_info` used when possibly not defined
- hydpy/mypy_plugin.py:387:13 warning[possibly-unresolved-reference] Name `subvars_inst` used when possibly not defined
- hydpy/mypy_plugin.py:393:27 warning[possibly-unresolved-reference] Name `model_inst` used when possibly not defined
- hydpy/mypy_plugin.py:516:16 warning[possibly-unresolved-reference] Name `api` used when possibly not defined
- hydpy/mypy_plugin.py:519:18 warning[possibly-unresolved-reference] Name `api` used when possibly not defined

ibis (https://github.com/ibis-project/ibis)
- ibis/backends/__init__.py:934:31 warning[possibly-unresolved-reference] Name `cached_op` used when possibly not defined
- ibis/backends/risingwave/__init__.py:272:36 warning[possibly-unresolved-reference] Name `temp_table_db` used when possibly not defined
- ibis/backends/sql/datatypes.py:903:25 warning[possibly-unresolved-reference] Name `bound` used when possibly not defined
- ibis/backends/sql/datatypes.py:1275:25 warning[possibly-unresolved-reference] Name `bound` used when possibly not defined
- ibis/expr/builders.py:183:23 warning[possibly-unresolved-reference] Name `lit` used when possibly not defined

jax (https://github.com/google/jax)
- jax/_src/custom_derivatives.py:770:67 warning[possibly-unresolved-reference] Name `dup_idx` used when possibly not defined
- jax/_src/custom_derivatives.py:967:47 warning[possibly-unresolved-reference] Name `a_` used when possibly not defined
- jax/_src/core.py:2700:25 warning[possibly-unresolved-reference] Name `rest_vma` used when possibly not defined
- jax/_src/dtypes.py:256:11 warning[possibly-unresolved-reference] Name `f` used when possibly not defined
- jax/_src/export/shape_poly.py:1096:13 warning[possibly-unresolved-reference] Name `before_k2` used when possibly not defined
- jax/_src/interpreters/batching.py:714:33 warning[possibly-unresolved-reference] Name `spmd_names` used when possibly not defined

koda-validate (https://github.com/keithasaurus/koda-validate)
- koda_validate/dataclasses.py:213:39 warning[possibly-unresolved-reference] Name `result` used when possibly not defined
- koda_validate/dataclasses.py:269:39 warning[possibly-unresolved-reference] Name `result_async` used when possibly not defined
- koda_validate/dictionary.py:954:39 warning[possibly-unresolved-reference] Name `async_result` used when possibly not defined
- koda_validate/dictionary.py:1080:35 warning[possibly-unresolved-reference] Name `result` used when possibly not defined
- koda_validate/dictionary.py:1111:35 warning[possibly-unresolved-reference] Name `result` used when possibly not defined
- koda_validate/dictionary.py:1115:35 warning[possibly-unresolved-reference] Name `result` used when possibly not defined

mitmproxy (https://github.com/mitmproxy/mitmproxy)
- mitmproxy/proxy/server.py:158:56 warning[possibly-unresolved-reference] Name `e` used when possibly not defined

mkosi (https://github.com/systemd/mkosi)
- mkosi/__init__.py:458:35 warning[possibly-unresolved-reference] Name `version` used when possibly not defined
- mkosi/__init__.py:2046:24 warning[possibly-unresolved-reference] Name `root` used when possibly not defined
- mkosi/__init__.py:4379:36 warning[possibly-unresolved-reference] Name `stat` used when possibly not defined
- mkosi/__init__.py:4379:49 warning[possibly-unresolved-reference] Name `stat` used when possibly not defined
- mkosi/config.py:5302:25 warning[possibly-unresolved-reference] Name `p` used when possibly not defined
- mkosi/config.py:5303:38 warning[possibly-unresolved-reference] Name `p` used when possibly not defined
- mkosi/config.py:5303:80 warning[possibly-unresolved-reference] Name `p` used when possibly not defined
- mkosi/config.py:5353:20 warning[possibly-unresolved-reference] Name `p` used when possibly not defined
- mkosi/config.py:5576:24 warning[possibly-unresolved-reference] Name `imagedir` used when possibly not defined
- mkosi/run.py:705:42 warning[possibly-unresolved-reference] Name `p` used when possibly not defined
- mkosi/run.py:708:38 warning[possibly-unresolved-reference] Name `p` used when possibly not defined

mypy (https://github.com/python/mypy)
- mypy/checkexpr.py:6140:21 warning[possibly-unresolved-reference] Name `node_as_type` used when possibly not defined
- mypy/config_parser.py:718:61 warning[possibly-unresolved-reference] Name `ndec` used when possibly not defined
- mypy/semanal.py:1376:31 warning[possibly-unresolved-reference] Name `deprecated` used when possibly not defined
- mypy/semanal.py:1379:44 warning[possibly-unresolved-reference] Name `deprecated` used when possibly not defined
- mypy/semanal.py:1406:20 warning[possibly-unresolved-reference] Name `deprecated` used when possibly not defined

nox (https://github.com/wntrblm/nox)
- nox/_cli.py:150:16 warning[possibly-unresolved-reference] Name `main_filename` used when possibly not defined

openlibrary (https://github.com/internetarchive/openlibrary)
- openlibrary/catalog/marc/parse.py:500:45 warning[possibly-unresolved-reference] Name `name` used when possibly not defined
- openlibrary/plugins/books/dynlinks.py:438:58 warning[possibly-unresolved-reference] Name `ebook_access` used when possibly not defined
- openlibrary/plugins/upstream/borrow.py:142:31 warning[possibly-unresolved-reference] Name `acquisitions` used when possibly not defined
- openlibrary/solr/query_utils.py:182:39 warning[possibly-unresolved-reference] Name `next_word` used when possibly not defined

pandas-stubs (https://github.com/pandas-dev/pandas-stubs)
- tests/__init__.py:81:64 error[possibly-unresolved-reference] Name `expected_dtype` used when possibly not defined

pegen (https://github.com/we-like-parsers/pegen)
- src/pegen/grammar_parser.py:70:29 warning[possibly-unresolved-reference] Name `metas` used when possibly not defined
- src/pegen/grammar_parser.py:82:21 warning[possibly-unresolved-reference] Name `name` used when possibly not defined
- src/pegen/grammar_parser.py:90:21 warning[possibly-unresolved-reference] Name `a` used when possibly not defined
- src/pegen/grammar_parser.py:98:21 warning[possibly-unresolved-reference] Name `name` used when possibly not defined
- src/pegen/grammar_parser.py:98:47 warning[possibly-unresolved-reference] Name `string` used when possibly not defined
- src/pegen/grammar_parser.py:128:55 warning[possibly-unresolved-reference] Name `alts` used when possibly not defined
- src/pegen/grammar_parser.py:148:51 warning[possibly-unresolved-reference] Name `alts` used when possibly not defined
- src/pegen/grammar_parser.py:178:32 warning[possibly-unresolved-reference] Name `alts` used when possibly not defined
- src/pegen/grammar_parser.py:198:24 warning[possibly-unresolved-reference] Name `alts` used when possibly not defined
- src/pegen/grammar_parser.py:213:38 warning[possibly-unresolved-reference] Name `action` used when possibly not defined
- src/pegen/grammar_parser.py:244:43 warning[possibly-unresolved-reference] Name `item` used when possibly not defined
- src/pegen/grammar_parser.py:255:43 warning[possibly-unresolved-reference] Name `item` used when possibly not defined
- src/pegen/grammar_parser.py:294:38 warning[possibly-unresolved-reference] Name `atom` used when possibly not defined
- src/pegen/grammar_parser.py:309:24 warning[possibly-unresolved-reference] Name `alts` used when possibly not defined
- src/pegen/grammar_parser.py:328:32 warning[possibly-unresolved-reference] Name `node` used when possibly not defined
- src/pegen/grammar_parser.py:364:20 warning[possibly-unresolved-reference] Name `target_atoms` used when possibly not defined
- src/pegen/grammar_parser.py:381:20 warning[possibly-unresolved-reference] Name `target_atoms` used when possibly not defined
- src/pegen/grammar_parser.py:421:27 warning[possibly-unresolved-reference] Name `atoms` used when possibly not defined
- src/pegen/grammar_parser.py:451:20 warning[possibly-unresolved-reference] Name `op` used when possibly not defined
- src/pegen/grammar_parser.py:438:44 warning[possibly-unresolved-reference] Name `r` used when possibly not defined

pip (https://github.com/pypa/pip)
- src/pip/_vendor/requests/utils.py:521:27 warning[possibly-unresolved-reference] Name `idx` used when possibly not defined

poetry (https://github.com/python-poetry/poetry)
- src/poetry/console/application.py:273:41 warning[possibly-unresolved-reference] Name `message` used when possibly not defined
- src/poetry/publishing/uploader.py:363:44 warning[possibly-unresolved-reference] Name `pf` used when possibly not defined
- src/poetry/puzzle/transaction.py:155:36 warning[possibly-unresolved-reference] Name `installed_package` used when possibly not defined
- src/poetry/repositories/http_repository.py:184:62 warning[possibly-unresolved-reference] Name `hash_name` used when possibly not defined
- src/poetry/utils/env/env_manager.py:191:58 warning[possibly-unresolved-reference] Name `minor` used when possibly not defined

prefect (https://github.com/PrefectHQ/prefect)
- src/integrations/prefect-kubernetes/prefect_kubernetes/worker.py:581:40 warning[possibly-unresolved-reference] Name `value` used when possibly not defined
- src/prefect/settings/sources.py:351:21 warning[possibly-unresolved-reference] Name `dotenv_path` used when possibly not defined
- src/prefect/tasks.py:1752:77 warning[possibly-unresolved-reference] Name `task_run_url` used when possibly not defined
- src/prefect/workers/base.py:236:59 warning[possibly-unresolved-reference] Name `deployment_env` used when possibly not defined

pwndbg (https://github.com/pwndbg/pwndbg)
- pwndbg/aglib/kernel/paging.py:798:46 warning[possibly-unresolved-reference] Name `result` used when possibly not defined

pydantic (https://github.com/pydantic/pydantic)
- pydantic/_internal/_generate_schema.py:2831:20 warning[possibly-unresolved-reference] Name `inlining_behavior` used when possibly not defined

pylint (https://github.com/pycqa/pylint)
- pylint/checkers/match_statements_checker.py:196:41 warning[possibly-unresolved-reference] Name `match_args` used when possibly not defined
- pylint/checkers/match_statements_checker.py:200:53 warning[possibly-unresolved-reference] Name `match_args` used when possibly not defined

pyodide (https://github.com/pyodide/pyodide)
- pyodide-build/pyodide_build/recipe/loader.py:73:42 warning[possibly-unresolved-reference] Name `tag` used when possibly not defined

pytest (https://github.com/pytest-dev/pytest)
- src/_pytest/_code/code.py:666:23 warning[possibly-unresolved-reference] Name `subexc` used when possibly not defined
- src/_pytest/raises.py:500:46 warning[possibly-unresolved-reference] Name `stringified_exception` used when possibly not defined
- src/_pytest/subtests.py:130:58 warning[possibly-unresolved-reference] Name `log` used when possibly not defined

rotki (https://github.com/rotki/rotki)
- rotkehlchen/chain/arbitrum_one/modules/thegraph/balances.py:101:25 warning[possibly-unresolved-reference] Name `beneficiary` used when possibly not defined
- rotkehlchen/chain/ethereum/modules/fluence/decoder.py:110:77 warning[possibly-unresolved-reference] Name `user_address` used when possibly not defined
- rotkehlchen/chain/ethereum/modules/lido/decoder.py:182:79 warning[possibly-unresolved-reference] Name `sender` used when possibly not defined
- rotkehlchen/chain/ethereum/modules/sky/decoder.py:155:45 warning[possibly-unresolved-reference] Name `location_label` used when possibly not defined
- rotkehlchen/chain/evm/decoding/aave/v2/decoder.py:118:32 warning[possibly-unresolved-reference] Name `from_address` used when possibly not defined
- rotkehlchen/chain/evm/decoding/giveth/decoder.py:111:45 warning[possibly-unresolved-reference] Name `user` used when possibly not defined
- rotkehlchen/chain/evm/decoding/hop/balances.py:157:36 warning[possibly-unresolved-reference] Name `reward_norm` used when possibly not defined
- rotkehlchen/chain/evm/decoding/summer_fi/decoder.py:55:28 warning[possibly-unresolved-reference] Name `user_address` used when possibly not defined
- rotkehlchen/chain/evm/decoding/superfluid/decoder.py:229:28 warning[possibly-unresolved-reference] Name `sender` used when possibly not defined
- rotkehlchen/chain/evm/decoding/uniswap/utils.py:292:97 warning[possibly-unresolved-reference] Name `position_id` used when possibly not defined
- rotkehlchen/chain/evm/decoding/uniswap/v4/utils.py:91:50 warning[possibly-unresolved-reference] Name `resolved_asset` used when possibly not defined
- rotkehlchen/chain/evm/decoding/utils.py:239:15 warning[possibly-unresolved-reference] Name `underlying_token` used when possibly not defined
- rotkehlchen/chain/evm/decoding/utils.py:241:48 warning[possibly-unresolved-reference] Name `underlying_token` used when possibly not defined
- rotkehlchen/chain/evm/decoding/woo_fi/balances.py:62:74 warning[possibly-unresolved-reference] Name `pool_id` used when possibly not defined
- rotkehlchen/chain/gnosis/modules/gnosis_pay/decoder.py:107:35 warning[possibly-unresolved-reference] Name `new_notes` used when possibly not defined
- rotkehlchen/chain/polygon_pos/modules/polygon_pos_bridge/decoder.py:96:32 warning[possibly-unresolved-reference] Name `user_address` used when possibly not defined
- rotkehlchen/chain/solana/modules/jupiter/decoder.py:79:53 warning[possibly-unresolved-reference] Name `mint_idx` used when possibly not defined
- rotkehlchen/chain/solana/modules/jupiter/decoder.py:404:24 warning[possibly-unresolved-reference] Name `wsol_ata_address` used when possibly not defined
- rotkehlchen/db/upgrades/v45_v46.py:191:34 warning[possibly-unresolved-reference] Name `label` used when possibly not defined
- rotkehlchen/exchanges/coinbaseprime.py:91:42 warning[possibly-unresolved-reference] Name `pair_data` used when possibly not defined
- rotkehlchen/exchanges/coinbaseprime.py:92:43 warning[possibly-unresolved-reference] Name `pair_data` used when possibly not defined
- rotkehlchen/exchanges/iconomi.py:293:44 warning[possibly-unresolved-reference] Name `timestamp` used when possibly not defined
- rotkehlchen/history/skipped.py:101:31 warning[possibly-unresolved-reference] Name `location_label` used when possibly not defined
- rotkehlchen/api/services/history.py:299:21 warning[possibly-unresolved-reference] Name `gnosis_pay` used when possibly not defined
- rotkehlchen/api/v1/schemas.py:2051:28 warning[possibly-unresolved-reference] Name `addresses` used when possibly not defined
- rotkehlchen/api/v1/schemas.py:4978:63 warning[possibly-unresolved-reference] Name `already` used when possibly not defined
- rotkehlchen/assets/utils.py:123:31 warning[possibly-unresolved-reference] Name `mint_info` used when possibly not defined
- rotkehlchen/assets/utils.py:124:30 warning[possibly-unresolved-reference] Name `metadata` used when possibly not defined
- rotkehlchen/chain/bitcoin/manager.py:594:45 warning[possibly-unresolved-reference] Name `event` used when possibly not defined
- rotkehlchen/chain/evm/decoding/aave/v3/decoder.py:289:73 warning[possibly-unresolved-reference] Name `earned_token` used when possibly not defined
- rotkehlchen/chain/evm/decoding/aave/v3/decoder.py:290:88 warning[possibly-unresolved-reference] Name `earned_token` used when possibly not defined
- rotkehlchen/chain/evm/decoding/aave/v3/decoder.py:309:42 warning[possibly-unresolved-reference] Name `balance_increase` used when possibly not defined
- rotkehlchen/chain/evm/decoding/balancer/decoder.py:101:51 warning[possibly-unresolved-reference] Name `evm_asset` used when possibly not defined
- rotkehlchen/chain/evm/decoding/balancer/decoder.py:113:52 warning[possibly-unresolved-reference] Name `evm_asset` used when possibly not defined
- rotkehlchen/chain/evm/decoding/curve/curve_cache.py:212:36 warning[possibly-unresolved-reference] Name `u_coins` used when possibly not defined
- rotkehlchen/chain/evm/decoding/decoder.py:704:23 warning[possibly-unresolved-reference] Name `eth_event` used when possibly not defined
- rotkehlchen/chain/evm/decoding/rainbow/decoder.py:206:34 warning[possibly-unresolved-reference] Name `possible_fee_amount` used when possibly not defined
- rotkehlchen/chain/evm/decoding/rainbow/decoder.py:218:34 warning[possibly-unresolved-reference] Name `possible_fee_amount` used when possibly not defined
- rotkehlchen/chain/evm/decoding/stakedao/decoder.py:194:57 warning[possibly-unresolved-reference] Name `deposited_asset` used when possibly not defined
- rotkehlchen/chain/evm/decoding/stakedao/v2/decoder.py:131:19 warning[possibly-unresolved-reference] Name `underlying_token` used when possibly not defined
- rotkehlchen/chain/evm/decoding/yearn/decoder.py:447:159 warning[possibly-unresolved-reference] Name `vault_token` used when possibly not defined
- rotkehlchen/chain/evm/decoding/yearn/decoder.py:610:37 warning[possibly-unresolved-reference] Name `vault_token` used when possibly not defined
- rotkehlchen/chain/evm/decoding/yearn/decoder.py:668:55 warning[possibly-unresolved-reference] Name `resolved_asset` used when possibly not defined
- rotkehlchen/chain/solana/decoding/decoder.py:223:28 warning[possibly-unresolved-reference] Name `fee_payer` used when possibly not defined
- rotkehlchen/chain/solana/node_inquirer.py:192:43 warning[possibly-unresolved-reference] Name `retry_after` used when possibly not defined
- rotkehlchen/chain/solana/node_inquirer.py:305:57 warning[possibly-unresolved-reference] Name `raw_metadata_pointer` used when possibly not defined
- rotkehlchen/constants/resolver.py:66:12 warning[possibly-unresolved-reference] Name `id_parts` used when possibly not defined
- rotkehlchen/db/eth2.py:541:20 warning[possibly-unresolved-reference] Name `target_validator` used when possibly not defined
- rotkehlchen/db/eth2.py:556:44 warning[possibly-unresolved-reference] Name `source_validator` used when possibly not defined
- rotkehlchen/db/history_events.py:900:41 warning[possibly-unresolved-reference] Name `length` used when possibly not defined
- rotkehlchen/exchanges/kraken.py:1244:46 warning[possibly-unresolved-reference] Name `amount` used when possibly not defined
- rotkehlchen/externalapis/defillama.py:163:35 warning[possibly-unresolved-reference] Name `coins_result` used when possibly not defined
- rotkehlchen/tasks/calendar.py:332:21 warning[possibly-unresolved-reference] Name `ens_name` used when possibly not defined
- rotkehlchen/tasks/calendar.py:336:30 warning[possibly-unresolved-reference] Name `ens_name` used when possibly not defined
- rotkehlchen/tasks/calendar.py:451:21 warning[possibly-unresolved-reference] Name `cutoff_time` used when possibly not defined
- rotkehlchen/tasks/calendar.py:464:163 warning[possibly-unresolved-reference] Name `cutoff_time` used when possibly not defined
- rotkehlchen/tasks/calendar.py:333:21 warning[possibly-unresolved-reference] Name `ens_expires` used when possibly not defined
- rotkehlchen/tasks/events.py:410:23 warning[possibly-unresolved-reference] Name `notes` used when possibly not defined
- rotkehlchen/tasks/events.py:422:52 warning[possibly-unresolved-reference] Name `blockchain_str` used when possibly not defined
- rotkehlchen/tasks/historical_balances.py:153:41 warning[possibly-unresolved-reference] Name `wallet_direction` used when possibly not defined
- rotkehlchen/tasks/historical_balances.py:495:42 warning[possibly-unresolved-reference] Name `new_balance` used when possibly not defined
- rotkehlchen/tests/utils/mock.py:142:92 warning[possibly-unresolved-reference] Name `data` used when possibly not defined
- rotkehlchen/tests/utils/mock.py:153:92 warning[possibly-unresolved-reference] Name `data` used when possibly not defined

schemathesis (https://github.com/schemathesis/schemathesis)
- src/schemathesis/openapi/loaders.py:250:16 warning[possibly-unresolved-reference] Name `content_type` used when possibly not defined

scikit-learn (https://github.com/scikit-learn/scikit-learn)
- sklearn/utils/_repr_html/common.py:70:35 warning[possibly-unresolved-reference] Name `structured_docstring` used when possibly not defined

scipy (https://github.com/scipy/scipy)
- scipy/signal/_signaltools.py:3011:20 warning[possibly-unresolved-reference] Name `m` used when possibly not defined

scrapy (https://github.com/scrapy/scrapy)
- scrapy/core/engine.py:542:44 warning[possibly-unresolved-reference] Name `d` used when possibly not defined

sphinx (https://github.com/sphinx-doc/sphinx)
- sphinx/ext/autodoc/_dynamic/_member_finder.py:603:68 warning[possibly-unresolved-reference] Name `module_all` used when possibly not defined
- sphinx/ext/autodoc/_dynamic/_member_finder.py:604:34 warning[possibly-unresolved-reference] Name `module_all` used when possibly not defined
- sphinx/ext/autodoc/_legacy_class_based/_documenters.py:2493:51 warning[possibly-unresolved-reference] Name `docstring` used when possibly not defined

static-frame (https://github.com/static-frame/static-frame)
- static_frame/core/store.py:439:42 warning[possibly-unresolved-reference] Name `ext` used when possibly not defined

xarray (https://github.com/pydata/xarray)
- xarray/backends/netCDF4_.py:642:66 warning[possibly-unresolved-reference] Name `e_name` used when possibly not defined
- xarray/core/formatting.py:1089:28 warning[possibly-unresolved-reference] Name `indexes_diff` used when possibly not defined

yarl (https://github.com/aio-libs/yarl)
- yarl/_url.py:1047:19 warning[possibly-unresolved-reference] Name `old_segments` used when possibly not defined
- yarl/_url.py:1047:40 warning[possibly-unresolved-reference] Name `old_segments` used when possibly not defined
- yarl/_url.py:1590:50 warning[possibly-unresolved-reference] Name `invalid` used when possibly not defined

zulip (https://github.com/zulip/zulip)
- zerver/lib/rate_limiter.py:156:31 warning[possibly-unresolved-reference] Name `network` used when possibly not defined
- zerver/openapi/curl_param_value_generators.py:94:22 warning[possibly-unresolved-reference] Name `content` used when possibly not defined

Full report with detailed diff (timing results)

@tamird
Copy link
Copy Markdown
Contributor Author

tamird commented Apr 6, 2026

The added invalid-await and invalid-return-type are all in prefect which is marked flaky (though I'm not really sure what that means).

Cache truthy and falsy branch-entry snapshots for boolean tests with
named expressions, and restore them when entering `if` and `elif`
branches. The merged post-test flow is too weak for cases like
`if flag and (x := 1):`, where the branch body is reachable only when
the named expression executed.

Fixes astral-sh/ty#626.
@tamird tamird force-pushed the correctly-model-short-circuiting-control-flow branch from 737289e to 928acda Compare April 6, 2026 22:31
@tamird
Copy link
Copy Markdown
Contributor Author

tamird commented Apr 17, 2026

@carljm if this is the wrong approach, I'd be grateful for your advice.

carljm added 3 commits April 26, 2026 18:29
* main: (248 commits)
  [ty] bump conformance suite commit (astral-sh#24848)
  [ty] Pass unmapped type variables to `SpecializationBuilder::build_with` (astral-sh#24809)
  [ty] Avoid bookkeeping for unannotated functions (astral-sh#24842)
  [ty] Optimize signature checking based on number of arguments (astral-sh#24674)
  [ty] Avoid eagerly inferring legacy generic context (astral-sh#24841)
  [ty] Skip decorator inference for undecorated functions (astral-sh#24839)
  [ty] solve unions against generic protocols (astral-sh#24837)
  [ty] Lazily allocate parameter type builders (astral-sh#24838)
  [ty] Lazily compute call argument fallbacks (astral-sh#24836)
  [ty] Avoid collecting type context callables (astral-sh#24835)
  Bump ecosystem-analyzer to e7576e6 (astral-sh#24834)
  [ty] Support basic narrowing with aliased conditional expressions (astral-sh#24302)
  [ty] Fix project and workspace selection (astral-sh#24824)
  [ty] Fix missing memory usage attributes (astral-sh#24823)
  Fix setting selection for multi folder workspace (astral-sh#24819)
  Improve diagnostics for implicit calls to a possibly unbound unary operator. (astral-sh#24816)
  [ty] Update review pool (astral-sh#24818)
  Bump 0.15.12 (astral-sh#24815)
  [ty] Complete support for more detailed diagnostics on possibly unbound errors from implicit dunder calls against unions. (astral-sh#24676)
  Implement `#ruff:file-ignore` file-level suppressions (astral-sh#23599)
  ...
Copy link
Copy Markdown
Contributor

@carljm carljm left a comment

Choose a reason for hiding this comment

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

This looks great! Sorry for the slow review, been a very full couple of weeks. Thanks so much for the PR.

I adjusted / augmented the tests a bit and merged in latest main; I also added some TODO tests for while loops to track the remaining gap there, but I don't want to try to squeeze that fix into this PR; let's get this merged and we can look into that separately.

@carljm carljm merged commit f508a69 into astral-sh:main Apr 27, 2026
56 checks passed
@tamird tamird deleted the correctly-model-short-circuiting-control-flow branch April 27, 2026 02:14
carljm added a commit that referenced this pull request Apr 27, 2026
* main: (44 commits)
  Update cargo-bins/cargo-binstall action to v1.18.1 (#24855)
  Update dependency ruff to v0.15.12 (#24857)
  Update taiki-e/install-action action to v2.75.18 (#24864)
  [ty] Model bool-op branch snapshots (#24458)
  [ty] Support `Unpack[TypedDict]` in `**kwargs` signatures (#24653)
  Update prek dependencies (#24858)
  Update Rust crate bitflags to v2.11.1 (#24859)
  Update Rust crate clap to v4.6.1 (#24860)
  Update Rust crate mimalloc to v0.1.49 (#24862)
  Update Rust crate uuid to v1.23.1 (#24863)
  Update Rust crate rayon to v1.12.0 (#24866)
  Update Rust crate libc to v0.2.185 (#24861)
  [ty] Reserve union element storage (#24849)
  [ty] bump conformance suite commit (#24848)
  [ty] Pass unmapped type variables to `SpecializationBuilder::build_with` (#24809)
  [ty] Avoid bookkeeping for unannotated functions (#24842)
  [ty] Optimize signature checking based on number of arguments (#24674)
  [ty] Avoid eagerly inferring legacy generic context (#24841)
  [ty] Skip decorator inference for undecorated functions (#24839)
  [ty] solve unions against generic protocols (#24837)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ty Multi-file analysis & type inference

Projects

None yet

Development

Successfully merging this pull request may close these issues.

correctly model short-circuting control flow in boolean expressions

3 participants