astral-sh
ruff
BlogDocsChangelog

[ty] WIP: handle recursive type inference properly

#20566
Comparing
mtshiba:recursive-inference
(
2eea054
) with
main
(
5f50137
)
CodSpeed Performance Gauge
+10%
Improvements
5
Untouched
47

Benchmarks

Improved

hydra-zen
crates/ruff_benchmark/benches/ty.rs::project::hydra::project
CodSpeed Performance Gauge
+10%
1,021.6 ms927.8 ms
medium[static-frame]
crates/ruff_benchmark/benches/ty_walltime.rs
CodSpeed Performance Gauge
+8%
14.9 s13.8 s
ty_micro[complex_constrained_attributes_1]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_complex_constrained_attributes_1
CodSpeed Performance Gauge
+5%
70.2 ms67.1 ms
ty_micro[complex_constrained_attributes_2]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_complex_constrained_attributes_2
CodSpeed Performance Gauge
+5%
69.9 ms66.8 ms
large[sympy]
crates/ruff_benchmark/benches/ty_walltime.rs
CodSpeed Performance Gauge
+4%
53.9 s51.8 s

Passed

multithreaded[altair]
crates/ruff_benchmark/benches/ty_walltime.rs
CodSpeed Performance Gauge
+6%
560.4 ms526.2 ms
medium[pandas]
crates/ruff_benchmark/benches/ty_walltime.rs
CodSpeed Performance Gauge
+4%
46 s44.3 s
ty_check_file[cold]
crates/ruff_benchmark/benches/ty.rs::check_file::benchmark_cold
CodSpeed Performance Gauge
+4%
135.5 ms130.8 ms
small[freqtrade]
crates/ruff_benchmark/benches/ty_walltime.rs
CodSpeed Performance Gauge
+3%
6.3 s6.1 s
medium[colour-science]
crates/ruff_benchmark/benches/ty_walltime.rs
CodSpeed Performance Gauge
+3%
16.1 s15.6 s
attrs
crates/ruff_benchmark/benches/ty.rs::project::attrs::project
CodSpeed Performance Gauge
+3%
444.2 ms432.6 ms
small[altair]
crates/ruff_benchmark/benches/ty_walltime.rs
CodSpeed Performance Gauge
+3%
2.9 s2.8 s
DateType
crates/ruff_benchmark/benches/ty.rs::project::datetype::project
CodSpeed Performance Gauge
+2%
236 ms231.2 ms
anyio
crates/ruff_benchmark/benches/ty.rs::project::anyio::project
CodSpeed Performance Gauge
+2%
1.1 s1.1 s
ty_micro[many_enum_members]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_many_enum_members
CodSpeed Performance Gauge
+1%
94.1 ms92.8 ms
small[tanjun]
crates/ruff_benchmark/benches/ty_walltime.rs
CodSpeed Performance Gauge
+1%
2.3 s2.3 s
ty_micro[many_tuple_assignments]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_many_tuple_assignments
CodSpeed Performance Gauge
+1%
66 ms65.6 ms
ty_micro[complex_constrained_attributes_3]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_complex_constrained_attributes_3
CodSpeed Performance Gauge
0%
70.5 ms70.3 ms
lexer[numpy/globals.py]
crates/ruff_benchmark/benches/lexer.rs::lexer::benchmark_lexer
CodSpeed Performance Gauge
0%
29.7 µs29.6 µs
formatter[large/dataset.py]
crates/ruff_benchmark/benches/formatter.rs::formatter::benchmark_formatter
CodSpeed Performance Gauge
0%
9.6 ms9.6 ms
formatter[unicode/pypinyin.py]
crates/ruff_benchmark/benches/formatter.rs::formatter::benchmark_formatter
CodSpeed Performance Gauge
0%
675.4 µs674.8 µs
parser[numpy/globals.py]
crates/ruff_benchmark/benches/parser.rs::parser::benchmark_parser
CodSpeed Performance Gauge
0%
108.3 µs108.2 µs
lexer[unicode/pypinyin.py]
crates/ruff_benchmark/benches/lexer.rs::lexer::benchmark_lexer
CodSpeed Performance Gauge
0%
77.4 µs77.3 µs
formatter[numpy/ctypeslib.py]
crates/ruff_benchmark/benches/formatter.rs::formatter::benchmark_formatter
CodSpeed Performance Gauge
0%
1.9 ms1.9 ms
formatter[pydantic/types.py]
crates/ruff_benchmark/benches/formatter.rs::formatter::benchmark_formatter
CodSpeed Performance Gauge
0%
3.6 ms3.6 ms
parser[pydantic/types.py]
crates/ruff_benchmark/benches/parser.rs::parser::benchmark_parser
CodSpeed Performance Gauge
0%
2 ms2 ms
parser[unicode/pypinyin.py]
crates/ruff_benchmark/benches/parser.rs::parser::benchmark_parser
CodSpeed Performance Gauge
0%
329.1 µs329 µs
parser[large/dataset.py]
crates/ruff_benchmark/benches/parser.rs::parser::benchmark_parser
CodSpeed Performance Gauge
0%
5.2 ms5.2 ms
parser[numpy/ctypeslib.py]
crates/ruff_benchmark/benches/parser.rs::parser::benchmark_parser
CodSpeed Performance Gauge
0%
950.6 µs950.3 µs
linter/default-rules[pydantic/types.py]
crates/ruff_benchmark/benches/linter.rs::default_rules::benchmark_default_rules
CodSpeed Performance Gauge
0%
2.2 ms2.2 ms
lexer[numpy/ctypeslib.py]
crates/ruff_benchmark/benches/lexer.rs::lexer::benchmark_lexer
CodSpeed Performance Gauge
0%
222.4 µs222.4 µs
lexer[pydantic/types.py]
crates/ruff_benchmark/benches/lexer.rs::lexer::benchmark_lexer
CodSpeed Performance Gauge
0%
496.6 µs496.6 µs
lexer[large/dataset.py]
crates/ruff_benchmark/benches/lexer.rs::lexer::benchmark_lexer
CodSpeed Performance Gauge
0%
1.1 ms1.1 ms
linter/all-rules[numpy/globals.py]
crates/ruff_benchmark/benches/linter.rs::all_rules::benchmark_all_rules
CodSpeed Performance Gauge
0%
731 µs730.9 µs
linter/all-with-preview-rules[numpy/globals.py]
crates/ruff_benchmark/benches/linter.rs::preview_rules::benchmark_preview_rules
CodSpeed Performance Gauge
0%
832.3 µs832.4 µs
ty_micro[many_string_assignments]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_many_string_assignments
CodSpeed Performance Gauge
0%
76.7 ms76.7 ms
linter/all-rules[large/dataset.py]
crates/ruff_benchmark/benches/linter.rs::all_rules::benchmark_all_rules
CodSpeed Performance Gauge
0%
18.6 ms18.6 ms
formatter[numpy/globals.py]
crates/ruff_benchmark/benches/formatter.rs::formatter::benchmark_formatter
CodSpeed Performance Gauge
0%
245.8 µs245.8 µs
linter/all-with-preview-rules[numpy/ctypeslib.py]
crates/ruff_benchmark/benches/linter.rs::preview_rules::benchmark_preview_rules
CodSpeed Performance Gauge
0%
5.1 ms5.1 ms
linter/all-rules[numpy/ctypeslib.py]
crates/ruff_benchmark/benches/linter.rs::all_rules::benchmark_all_rules
CodSpeed Performance Gauge
0%
4.3 ms4.3 ms
linter/default-rules[numpy/ctypeslib.py]
crates/ruff_benchmark/benches/linter.rs::default_rules::benchmark_default_rules
CodSpeed Performance Gauge
0%
1 ms1 ms
linter/all-with-preview-rules[large/dataset.py]
crates/ruff_benchmark/benches/linter.rs::preview_rules::benchmark_preview_rules
CodSpeed Performance Gauge
0%
22.3 ms22.3 ms
ty_micro[many_tuple_assignments]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_tuple_implicit_instance_attributes
CodSpeed Performance Gauge
0%
66.9 ms67 ms
linter/all-with-preview-rules[pydantic/types.py]
crates/ruff_benchmark/benches/linter.rs::preview_rules::benchmark_preview_rules
CodSpeed Performance Gauge
0%
10.1 ms10.1 ms
linter/default-rules[unicode/pypinyin.py]
crates/ruff_benchmark/benches/linter.rs::default_rules::benchmark_default_rules
CodSpeed Performance Gauge
0%
413.8 µs414.4 µs
linter/all-rules[pydantic/types.py]
crates/ruff_benchmark/benches/linter.rs::all_rules::benchmark_all_rules
CodSpeed Performance Gauge
0%
8.5 ms8.5 ms
linter/default-rules[large/dataset.py]
crates/ruff_benchmark/benches/linter.rs::default_rules::benchmark_default_rules
CodSpeed Performance Gauge
0%
4.4 ms4.4 ms
linter/all-rules[unicode/pypinyin.py]
crates/ruff_benchmark/benches/linter.rs::all_rules::benchmark_all_rules
CodSpeed Performance Gauge
0%
1.9 ms1.9 ms
linter/all-with-preview-rules[unicode/pypinyin.py]
crates/ruff_benchmark/benches/linter.rs::preview_rules::benchmark_preview_rules
CodSpeed Performance Gauge
0%
2.2 ms2.2 ms
large[pydantic]
crates/ruff_benchmark/benches/ty_walltime.rs
CodSpeed Performance Gauge
0%
20.3 s20.3 s
linter/default-rules[numpy/globals.py]
crates/ruff_benchmark/benches/linter.rs::default_rules::benchmark_default_rules
CodSpeed Performance Gauge
0%
210.6 µs211.3 µs
ty_check_file[incremental]
crates/ruff_benchmark/benches/ty.rs::check_file::benchmark_incremental
CodSpeed Performance Gauge
-1%
6.2 ms6.3 ms

Commits

Click on a commit to change the comparison range
Base
main
5f50137
-9.92%
Merge branch 'main' into recursive-inference
de28c13
21 days ago
by mtshiba
0%
Update 1377_iteration_count_mismatch.md
a1e3d93
21 days ago
by mtshiba
0%
update salsa
b852be7
18 days ago
by mtshiba
+14.77%
revert unnecessary changes
d68e5c0
17 days ago
by mtshiba
-0.68%
Add examples of self-referential types
b0a7804
17 days ago
by mtshiba
+3.81%
the code in `pr_20962_comprehension_panics.md` no longer panics
eda8017
14 days ago
by mtshiba
+1.85%
Merge branch 'main' into recursive-inference
3653427
12 days ago
by mtshiba
-1.61%
Merge branch 'main' into recursive-inference
fa88ca3
11 days ago
by mtshiba
+0.45%
don't create a query cycle in the cycle recovery function
682a2e8
11 days ago
by mtshiba
+0.62%
Update builder.rs
65bb223
11 days ago
by mtshiba
-0.9%
revert unnecessary changes
0cf4eaf
11 days ago
by mtshiba
+1.63%
Merge branch 'main' into recursive-inference
91167f9
10 days ago
by mtshiba
-0.7%
fix fuzzer hang
2393f6a
10 days ago
by mtshiba
-1.3%
Merge branch 'main' into recursive-inference
74a3758
6 days ago
by mtshiba
-0.6%
revert unnecessary changes
e7b0dc5
6 days ago
by mtshiba
-0.08%
update salsa reflects the change in https://github.com/mtshiba/salsa/commit/9333447c568e5095a1376164ddaeb8135692b253
e879f8b
6 days ago
by mtshiba
+2.7%
Merge branch 'main' into recursive-inference
0353244
4 days ago
by mtshiba
-0.83%
refactor
597a4ae
4 days ago
by mtshiba
-0.09%
fix recursive type normalization for implicit union type alias
eede68f
3 days ago
by mtshiba
+1.06%
add `Type::expand_eagerly`
ac44afa
3 days ago
by mtshiba
-0.07%
Merge branch 'main' into recursive-inference
3b4db33
3 days ago
by mtshiba
0%
Update e2e__commands__debug_command.snap
2eea054
3 days ago
by mtshiba
© 2025 CodSpeed Technology
Home Terms Privacy Docs