astral-sh
ruff
BlogDocsChangelog

[ty] Avoid false positive for `not-iterable` with no-positive intersection types

#22089
Comparing
charlie/neg
(
70859e4
) with
main
(
b5814b9
)
CodSpeed Performance Gauge
-29%
Regressions
5
Untouched
18
Skipped
30

Benchmarks

Skipped (30)

Failed

colour_science
crates/ruff_benchmark/benches/ty_walltime.rs
Regression
CodSpeed Performance Gauge
-29%
89.5 s125.9 s
pandas
crates/ruff_benchmark/benches/ty_walltime.rs
Regression
CodSpeed Performance Gauge
-9%
64.6 s70.7 s
static_frame
crates/ruff_benchmark/benches/ty_walltime.rs
Regression
CodSpeed Performance Gauge
-7%
21.8 s23.6 s
freqtrade
crates/ruff_benchmark/benches/ty_walltime.rs
Regression
CodSpeed Performance Gauge
-6%
8 s8.5 s
ty_check_file[incremental]
crates/ruff_benchmark/benches/ty.rs::check_file::benchmark_incremental
Regression
CodSpeed Performance Gauge
-5%
6.2 ms6.5 ms

Passed

ty_micro[many_enum_members_2]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_many_enum_members_2
CodSpeed Performance Gauge
0%
153.4 ms152.7 ms
sympy
crates/ruff_benchmark/benches/ty_walltime.rs
CodSpeed Performance Gauge
0%
51.4 s51.3 s
ty_micro[many_string_assignments]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_many_string_assignments
CodSpeed Performance Gauge
0%
78.2 ms78.2 ms
multithreaded
crates/ruff_benchmark/benches/ty_walltime.rs
CodSpeed Performance Gauge
0%
1.1 s1.1 s
ty_micro[complex_constrained_attributes_1]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_complex_constrained_attributes_1
CodSpeed Performance Gauge
0%
68.6 ms68.6 ms
DateType
crates/ruff_benchmark/benches/ty.rs::project::datetype::project
CodSpeed Performance Gauge
0%
240.7 ms240.8 ms
ty_micro[many_tuple_assignments]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_tuple_implicit_instance_attributes
CodSpeed Performance Gauge
0%
68.3 ms68.4 ms
anyio
crates/ruff_benchmark/benches/ty.rs::project::anyio::project
CodSpeed Performance Gauge
0%
1.2 s1.2 s
ty_micro[many_enum_members]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_many_enum_members
CodSpeed Performance Gauge
0%
123.3 ms123.5 ms
ty_micro[complex_constrained_attributes_2]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_complex_constrained_attributes_2
CodSpeed Performance Gauge
0%
68.4 ms68.5 ms
attrs
crates/ruff_benchmark/benches/ty.rs::project::attrs::project
CodSpeed Performance Gauge
0%
439.3 ms440.1 ms
ty_check_file[cold]
crates/ruff_benchmark/benches/ty.rs::check_file::benchmark_cold
CodSpeed Performance Gauge
0%
131.8 ms132.2 ms
ty_micro[many_tuple_assignments]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_many_tuple_assignments
CodSpeed Performance Gauge
0%
66.3 ms66.5 ms
ty_micro[complex_constrained_attributes_3]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_complex_constrained_attributes_3
CodSpeed Performance Gauge
0%
71.6 ms72 ms
pydantic
crates/ruff_benchmark/benches/ty_walltime.rs
CodSpeed Performance Gauge
-1%
10.6 s10.6 s
tanjun
crates/ruff_benchmark/benches/ty_walltime.rs
CodSpeed Performance Gauge
-1%
2.5 s2.6 s
altair
crates/ruff_benchmark/benches/ty_walltime.rs
CodSpeed Performance Gauge
-1%
4.7 s4.7 s
hydra-zen
crates/ruff_benchmark/benches/ty.rs::project::hydra::project
CodSpeed Performance Gauge
-2%
1.2 s1.3 s

Commits

Click on a commit to change the comparison range
Base
main
b5814b9
-28.91%
Add neg
6de4b1d
29 days ago
by charliermarsh
+0.17%
Add more fast-paths
3dba88b
4 days ago
by charliermarsh
+0.82%
Add more fast-paths
0eb28df
3 days ago
by charliermarsh
-0.98%
Add fast path for object vs unbounded inferable TypeVar This handles the common case where we're checking if `object` (the implicit positive element of a pure negation like `~str`) is assignable to a generic type parameter like `_T` in `Iterator[_T]`. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
70859e4
3 days ago
by charliermarsh
© 2026 CodSpeed Technology
Home Terms Privacy Docs