Skip to content

Commit 7e002e5

Browse files
committed
Micro-optimize binder update_from_options
1 parent bf70dab commit 7e002e5

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

mypy/binder.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,10 +250,12 @@ def update_from_options(self, frames: list[Frame]) -> bool:
250250
options are the same.
251251
"""
252252
all_reachable = all(not f.unreachable for f in frames)
253-
frames = [f for f in frames if not f.unreachable]
253+
if not all_reachable:
254+
frames = [f for f in frames if not f.unreachable]
254255
changed = False
255-
keys = {key for f in frames for key in f.types}
256-
256+
keys = [key for f in frames for key in f.types]
257+
if len(keys) > 1:
258+
keys = list(set(keys))
257259
for key in keys:
258260
current_value = self._get(key)
259261
resulting_values = [f.types.get(key, current_value) for f in frames]

0 commit comments

Comments
 (0)