Skip to content

[ty] Handle cycles in function decorator inference#25475

Merged
charliermarsh merged 1 commit into
mainfrom
charlie/fix-ty-3593-function-decorator-cycle
May 30, 2026
Merged

[ty] Handle cycles in function decorator inference#25475
charliermarsh merged 1 commit into
mainfrom
charlie/fix-ty-3593-function-decorator-cycle

Conversation

@charliermarsh
Copy link
Copy Markdown
Member

Summary

Handle recursive function_known_decorators queries by falling back to an empty decorator inference result while Salsa resolves the cycle. This prevents a Python 3.14 descriptor annotation with an overloaded __get__ method from panicking and preserves conservative Unknown behavior during cycle recovery.

Closes astral-sh/ty#3593.

@astral-sh-bot astral-sh-bot Bot added the ty Multi-file analysis & type inference label May 30, 2026
@astral-sh-bot
Copy link
Copy Markdown

astral-sh-bot Bot commented May 30, 2026

Typing conformance results

No changes detected ✅

Current numbers
The percentage of diagnostics emitted that were expected errors held steady at 91.94%. The percentage of expected errors that received a diagnostic held steady at 87.09%. The number of fully passing files held steady at 92/134.

@astral-sh-bot
Copy link
Copy Markdown

astral-sh-bot Bot commented May 30, 2026

Memory usage report

Memory usage unchanged ✅

@astral-sh-bot
Copy link
Copy Markdown

astral-sh-bot Bot commented May 30, 2026

ecosystem-analyzer results

No diagnostic changes detected ✅

Full report with detailed diff (timing results)

@charliermarsh charliermarsh added the bug Something isn't working label May 30, 2026
@charliermarsh charliermarsh marked this pull request as ready for review May 30, 2026 08:51
@charliermarsh charliermarsh merged commit d33907f into main May 30, 2026
58 of 59 checks passed
@charliermarsh charliermarsh deleted the charlie/fix-ty-3593-function-decorator-cycle branch May 30, 2026 08:51
carljm added a commit that referenced this pull request Jun 1, 2026
* main:
  [`pydocstyle`] Improve discoverability of rules enabled for each convention (#24973)
  [ty] Deduplicate retained use-def place states (#25450)
  [ty] reduce features of low-level crates depended on by `ty_python_semantic` (#25524)
  [ty] Fix narrowing enum literal unions by member identity (#25520)
  [ty] Test tagged union narrowing for named tuples (#25519)
  [ty] Disallow file-system access in `ty_python_core` (#25518)
  [ty] Nominal Tagged Union Narrowing (#24916)
  Commit `scripts/uv.lock` (#25517)
  Fix potential index out of range in `LineIndex` computation (#25492)
  [ty] Sync vendored typeshed stubs (#25514)
  [ty] Add disjointness for protocol method members (#25315)
  [ty] Use compact sets for more immutable fields (#25476)
  [ty] Derive `Default` for `FunctionDecoratorInference` (#25482)
  [ty] Ignore rejected assignments for synthesized bindings (#25340)
  [ty] Handle cycles in function decorator inference (#25475)
  docs: fix typo `bin/active` → `bin/activate` in tutorial (#25473)
  [ty] Narrow bound method overloads by receiver (#24707)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working ty Multi-file analysis & type inference

Projects

None yet

Development

Successfully merging this pull request may close these issues.

panic: dependency graph cycle when querying function_known_decorators

2 participants