Skip to content

Conversation

@AlexWaygood
Copy link
Member

Summary

This function is huge, and hugely indented. This PR breaks most of it out into two helper functions: KnownFunction::check_call() and KnownClass::check_call.

My immediate motivation is that we need to add yet more special cases to this function in order to properly handle tuple instantiations and instantiations of tuple subclasses. But I really don't relish the thought of doing that with the function's current structure 😆

Test Plan

Existing tests all pass. No new ones are added; this is a pure refactor that should have no functional change.

@AlexWaygood AlexWaygood added internal An internal refactor or improvement ty Multi-file analysis & type inference labels Jun 25, 2025
@github-actions
Copy link
Contributor

mypy_primer results

No ecosystem changes detected ✅

@AlexWaygood AlexWaygood merged commit 4a5715b into main Jun 25, 2025
38 checks passed
@AlexWaygood AlexWaygood deleted the alex/refactor-infer-call-expr branch June 25, 2025 20:10
dcreager added a commit that referenced this pull request Jun 26, 2025
* main:
  [ty] Add regression-benchmark for attribute-assignment hang (#18957)
  [ty] Format conflicting types as an enumeration (#18956)
  [ty] Prevent union builder construction for just one declaration (#18954)
  [ty] Infer nonlocal types as unions of all reachable bindings (#18750)
  [`pyflakes`] Mark `F504`/`F522`/`F523` autofix as unsafe if there's a call with side effect (#18839)
  [`playground`] Add ruff logo docs link to Header.tsx (#18947)
  [ty] Reduce the overwhelming complexity of `TypeInferenceBuilder::infer_call_expression` (#18943)
  [ty] Add subdiagnostic about empty bodies in more cases (#18942)
  [ty] Move search path resolution to `Options::to_program_settings` (#18937)
  [`flake8-errmsg`] Extend `EM101` to support byte strings (#18867)
  Move big rule implementations (#18931)
  [`pylint`] Allow fix with comments and document performance implications (`PLW3301`) (#18936)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

internal An internal refactor or improvement ty Multi-file analysis & type inference

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants