astral-sh
ruff
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
[ty] Recover from Salsa cycles in `code_generator_of_dynamic_class` Checking a self-referential dynamically-created class (e.g. the fuzzer-found `type("T", NamedTuple("T", [("", "T")]), {})`) panicked with `dependency graph cycle when querying code_generator_of_dynamic_class(...)`: the query re-enters itself via `iter_mro` -> `deferred_explicit_bases` -> ... . Its static-class sibling `code_generator_of_static_class` already recovers from such cycles with `cycle_initial=|_, _, _| None`; apply the same recovery to the dynamic-class query so a cycle resolves to "no code generator" instead of panicking. Fixes astral-sh/ty#3720. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
JamBalaya56562:ty-3720-dynamic-class-codegen-cycle
10 minutes ago
[ty] Reason about runtime object identity for `is`/`is not` with NewTypes A `NewType` is transparent at runtime (`NewType("N", Base)(v)` returns `v` unchanged), so two variables whose declared types are type-level disjoint can still point to the same runtime object. ty previously used type-level disjointness for `is`/`is not`, so e.g. `NewType("A", Foo)` vs `NewType("B", Foo)` made `x is y` infer `Literal[False]` (marking the branch unreachable) and narrowed both operands to `Never`. Add `Type::is_runtime_object_disjoint_from`, which peels `NewType` transparency before checking disjointness, and use it both in `is`/`is not` comparison inference (so the result is `bool`, not a static `False`/`True`, when the operands could be the same object) and in `is` narrowing (so such operands are not narrowed to `Never`). The type-level intersection simplification (`A & B` -> `Never`) is unchanged; genuinely disjoint runtime value sets such as distinct `@final` bases still narrow to `Never`. Fixes astral-sh/ty#3552. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
JamBalaya56562:ty-3552-newtype-is-narrowing
10 minutes ago
Render reST hyperlinks in docstring Markdown
lerebear/push-mzutpnrrzrww
29 minutes ago
Model general Markdown rendering state explicitly
lerebear/push-swtoupyvyrmk
30 minutes ago
CLI run
by
MichaReiser
46 minutes ago
CLI run
by
MichaReiser
47 minutes ago
CLI run
by
MichaReiser
53 minutes ago
[ty] Add small index set with inline storage
micha/small-index-set
1 hour ago
Latest Branches
CodSpeed Performance Gauge
0%
[ty] Recover from Salsa cycles in code_generator_of_dynamic_class
#26167
6 hours ago
e1a6fbf
JamBalaya56562:ty-3720-dynamic-class-codegen-cycle
CodSpeed Performance Gauge
0%
[ty] Reason about runtime object identity for is/is-not with NewTypes
#26168
5 hours ago
19c4465
JamBalaya56562:ty-3552-newtype-is-narrowing
CodSpeed Performance Gauge
0%
[ty] Render reST hyperlinks in docstring Markdown.
#25907
11 days ago
f25e9bb
lerebear/push-mzutpnrrzrww
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs