From 91bf811ea7d823fae6f8e4b7676a14cb18eed9fc Mon Sep 17 00:00:00 2001 From: Aaron Gokaslan Date: Fri, 21 Feb 2025 10:21:57 -0500 Subject: [PATCH] Enable FURB187 - avoid reverse list copy --- mypy/semanal_main.py | 2 +- mypyc/analysis/dataflow.py | 2 +- pyproject.toml | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/mypy/semanal_main.py b/mypy/semanal_main.py index ded2a9412168..9e2936feb2a0 100644 --- a/mypy/semanal_main.py +++ b/mypy/semanal_main.py @@ -179,7 +179,7 @@ def process_top_levels(graph: Graph, scc: list[str], patches: Patches) -> None: # Reverse order of the scc so the first modules in the original list will be # be processed first. This helps with performance. - scc = list(reversed(scc)) + scc = list(reversed(scc)) # noqa: FURB187 intentional copy # Initialize ASTs and symbol tables. for id in scc: diff --git a/mypyc/analysis/dataflow.py b/mypyc/analysis/dataflow.py index 26b58e224634..0657261e7a8f 100644 --- a/mypyc/analysis/dataflow.py +++ b/mypyc/analysis/dataflow.py @@ -542,7 +542,7 @@ def run_analysis( # Set up initial state for worklist algorithm. worklist = list(blocks) if not backward: - worklist = worklist[::-1] # Reverse for a small performance improvement + worklist.reverse() # Reverse for a small performance improvement workset = set(worklist) before: dict[BasicBlock, set[T]] = {} after: dict[BasicBlock, set[T]] = {} diff --git a/pyproject.toml b/pyproject.toml index ce1326bc5818..07f64e0d4af5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -146,6 +146,7 @@ select = [ "C4", # flake8-comprehensions "SIM101", # merge duplicate isinstance calls "SIM201", "SIM202", "SIM222", "SIM223", # flake8-simplify + "FURB187", # avoid list reverse copy "FURB188", # use str.remove(pre|suf)fix "ISC001", # implicitly concatenated string "RET501", "RET502", # better return None handling