ruff/crates/red_knot_python_semantic/resources/mdtest/call
Douglas Creager 23ccb52fa6
[red-knot] Handle unions of callables better (#16716)
This cleans up how we handle calling unions of types. #16568 adding a
three-level structure for callable signatures (`Signatures`,
`CallableSignature`, and `Signature`) to handle unions and overloads.

This PR updates the bindings side to mimic that structure. What used to
be called `CallOutcome` is now `Bindings`, and represents the result of
binding actual arguments against a possible union of callables.
`CallableBinding` is the result of binding a single, possibly
overloaded, callable type. `Binding` is the result of binding a single
overload.

While we're here, this also cleans up `CallError` greatly. It was
previously extracting error information from the bindings and storing it
in the error result. It is now a simple enum, carrying no data, that's
used as a status code to talk about whether the overall binding was
successful or not. We are now more consistent about walking the binding
itself to get detailed information about _how_ the binding was
unsucessful.

---------

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Carl Meyer <carl@astral.sh>
2025-03-17 10:35:52 -04:00
..
builtins.md [red-knot] Support multiple overloads when binding parameters at call sites (#16568) 2025-03-11 15:08:17 -04:00
callable_instance.md [red-knot] Handle unions of callables better (#16716) 2025-03-17 10:35:52 -04:00
constructor.md [red-knot] Format mdtest Python snippets more concisely (#13905) 2024-10-24 11:09:31 +00:00
dunder.md [red-knot] detect invalid return type (#16540) 2025-03-12 01:58:59 +00:00
function.md [red-knot] detect invalid return type (#16540) 2025-03-12 01:58:59 +00:00
getattr_static.md [red-knot] Attribute access and the descriptor protocol (#16416) 2025-03-07 22:03:28 +01:00
invalid_syntax.md [red-knot] add call checking (#15200) 2025-01-07 20:39:45 +00:00
methods.md [red-knot] Support multiple overloads when binding parameters at call sites (#16568) 2025-03-11 15:08:17 -04:00
never.md [red-knot] Never is callable and iterable. Arbitrary attributes can be accessed. (#16533) 2025-03-06 15:59:19 +00:00
subclass_of.md [red-knot] Add support for calling type[…] (#16597) 2025-03-10 13:24:13 +01:00
union.md [red-knot] Handle unions of callables better (#16716) 2025-03-17 10:35:52 -04:00