astral-sh
ruff
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
[ty] Simplify grouped enum comparisons
charlie/avoid-optional-enum-comparison-expansion
4 minutes ago
[ty] Address review comments on bound_requires_sequent_analysis Fold the `is_type_var` check into the `matches!`, conservatively treat class-based TypedDicts like protocols (their field types live in a lazy schema that `any_over_type` does not walk), and split the comment into the two distinct reasons a bound disqualifies the fast path. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
benedikt-bartscher:ty-fast-path-simple-conjunction-satisfiability
2 hours ago
[`ruff`] Add `unnecessary-literal-unpacking` (`RUF077`) Flags `*` unpacking of an inline list or tuple display, and of a single-element set display, where the elements could be written directly. The literal is built only to be taken apart again. A set is reported only when it holds one element written out in full: `{bar, baz}` and `{*rest}` still deduplicate, so they do real work. The fix is unsafe for a set, whose element no longer has to be hashable once written out, and wherever the deleted text holds a comment. No fix at all where writing the elements out would be a syntax error: a keyword argument before the unpacking, or a multi-line literal in a tuple written without parentheses. Closes #10592 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Avasam:Expand-nested-unpacking-and-unpacking-of-single-inline-element
2 hours ago
[ty] Simplify comprehension walrus IDE tests
charlie/issue-162-comprehension-walrus-ide
3 hours ago
[ty] Preserve narrowing in grouped enum comparisons
charlie/avoid-optional-enum-comparison-expansion
3 hours ago
[ty] skip redundancy checks for simplified unions
denyszhak:ty/skip-redundancy-check-for-simplified-unions
3 hours ago
[ty] Share nested-binding scope visibility
charlie/issue-162-comprehension-walrus-ide
3 hours ago
[ty] Preserve receiver constraints when binding overloaded methods (#27038) ## Summary Follow-up to [the receiver-constraint review discussion in #24707](https://github.com/astral-sh/ruff/pull/24707#discussion_r3326577303). Prior to this change, we reduced overload receiver matching to a boolean before binding the method. That kept overloads with satisfiable generic receivers, but discarded the constraints needed to specialize the remainder of the signature; structural receivers with contradictory constraints could also remain visible. We now reuse the receiver constraint set produced during binding, existentially prune impossible overloads, and solve exact receiver bounds into the bound signature while retaining one-sided constraints for later callable comparisons. For example: ```py from typing import overload class Box[T]: value: T @overload def method[S](self: "Box[S]", value: S) -> S: ... @overload def method(self, value: bytes) -> bytes: ... def method(self, value: object) -> object: ... reveal_type(Box[str]().method) # Overload[(value: str) -> str, (value: bytes) -> bytes] ``` --------- Co-authored-by: Carl Meyer <carl@astral.sh>
main
3 hours ago
Latest Branches
CodSpeed Performance Gauge
+27%
[ty] Decide satisfiability of simple typevar-free conjunctions directly
#27178
4 hours ago
86844a1
benedikt-bartscher:ty-fast-path-simple-conjunction-satisfiability
CodSpeed Performance Gauge
0%
[`ruff`] Add `unnecessary-literal-unpacking` (`RUF077`)
#27186
3 hours ago
0ff2908
Avasam:Expand-nested-unpacking-and-unpacking-of-single-inline-element
CodSpeed Performance Gauge
0%
[ty] Support comprehension walruses in IDE features
#26476
3 hours ago
ae19ac6
charlie/issue-162-comprehension-walrus-ide
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs