ruff/crates/ty_python_semantic/resources/mdtest
Dhruv Manilawala 4e94b22815
[ty] Support single-starred argument for overload call (#20223)
## Summary

closes: https://github.com/astral-sh/ty/issues/247

This PR adds support for variadic arguments to overload call evaluation.

This basically boils down to making sure that the overloads are not
filtered out incorrectly during the step 5 in the overload call
evaluation algorithm. For context, the step 5 tries to filter out the
remaining overloads after finding an overload where the materialization
of argument types are assignable to the parameter types.

The issue with the previous implementation was that it wouldn't unpack
the variadic argument and wouldn't consider the many-to-one (multiple
arguments mapping to a single variadic parameter) correctly. This PR
fixes that.

## Test Plan

Update existing test cases and resolve the TODOs.
2025-10-02 10:41:56 -04:00
..
annotations [ty] Use `typing.Self` for the first parameter of instance methods (#20517) 2025-09-29 21:08:08 +02:00
assignment [ty] More precise type inference for dictionary literals (#20523) 2025-09-24 18:12:00 -04:00
binary [ty] Remove special casing for string-literal-in-tuple `__contains__` (#19642) 2025-07-31 11:28:03 +01:00
boolean Revert "[ty] Better control flow for boolean expressions that are inside if (#18010)" (#18150) 2025-05-17 08:27:32 -04:00
boundness_declaredness [ty] Reformulation of public symbol inference test suite (#20667) 2025-10-01 14:26:17 +02:00
call [ty] Support single-starred argument for overload call (#20223) 2025-10-02 10:41:56 -04:00
class [ty] Rename "possibly unbound" diagnostics to "possibly missing" (#20492) 2025-09-23 14:26:55 +00:00
comparison [ty] detect cycles in binary comparison inference (#20446) 2025-09-17 09:45:25 +02:00
comprehensions [ty] Async for loops and async iterables (#19634) 2025-07-30 17:40:24 +02:00
conditional [ty] Support as-patterns in reachability analysis (#19728) 2025-08-04 20:13:50 +02:00
dataclasses [ty] initial support for `slots=True` in dataclasses (#20278) 2025-09-07 18:25:35 +01:00
declaration [ty] Format conflicting types as an enumeration (#18956) 2025-06-26 14:29:33 +02:00
diagnostics [ty] Use fully qualified names to distinguish ambiguous protocols in diagnostics (#20627) 2025-09-29 12:02:07 +00:00
directives [ty] Infer slightly more precise types for comprehensions (#20111) 2025-08-27 13:21:47 +01:00
doc ty_python_semantic: add union type context to function call type errors 2025-05-09 13:40:51 -04:00
exception [ty] Use separate Rust types for bound and unbound type variables (#19796) 2025-08-11 15:29:58 -04:00
expression [ty] Rename "possibly unbound" diagnostics to "possibly missing" (#20492) 2025-09-23 14:26:55 +00:00
function [ty] Improve disambiguation of types via fully qualified names (#20141) 2025-08-29 08:44:18 +00:00
generics [ty] `~T` should never be assignable to `T` (#20606) 2025-10-02 07:52:47 +01:00
ide_support [`ty`] Include `NamedTupleFallback` members in `NamedTuple` instance completions (#20356) 2025-09-15 11:00:03 +02:00
import [ty] No union with `Unknown` for module-global symbols (#20664) 2025-10-01 16:40:30 +02:00
literal [ty] More precise type inference for dictionary literals (#20523) 2025-09-24 18:12:00 -04:00
loops [ty] Add more tests for subtyping/assignability between two protocol types (#20573) 2025-09-26 12:07:57 +01:00
narrow [ty] No union with `Unknown` for module-global symbols (#20664) 2025-10-01 16:40:30 +02:00
regression Rename Red Knot (#17820) 2025-05-03 19:49:15 +02:00
scopes [ty] No union with `Unknown` for module-global symbols (#20664) 2025-10-01 16:40:30 +02:00
shadowing Rename Red Knot (#17820) 2025-05-03 19:49:15 +02:00
snapshots [ty] Rename "possibly unbound" diagnostics to "possibly missing" (#20492) 2025-09-23 14:26:55 +00:00
stubs [ty] Do not carry the generic context of `Protocol` or `Generic` in the `ClassBase` enum (#17989) 2025-05-22 21:37:03 -04:00
subscript [ty] Rename "possibly unbound" diagnostics to "possibly missing" (#20492) 2025-09-23 14:26:55 +00:00
suppressions [ty] Consistent use of American english (in rules) (#19488) 2025-07-22 16:10:38 +02:00
type_compendium [ty] Infer more precise types for collection literals (#20360) 2025-09-17 18:51:50 -04:00
type_of [ty] Improve the `Display` for generic `type[]` types (#19667) 2025-07-31 19:45:01 +01:00
type_properties [ty] Fix subtyping of invariant generics specialized with `Any` (#20650) 2025-10-01 10:05:54 +00:00
type_qualifiers [ty] Allow annotation expressions to be `ast::Attribute` nodes (#20413) 2025-09-15 12:06:48 +01:00
unary Update class literal display to use `<class 'Foo'>` style (#17889) 2025-05-06 20:11:25 -04:00
with [ty] Use `typing.Self` for the first parameter of instance methods (#20517) 2025-09-29 21:08:08 +02:00
.mdformat.toml Rename Red Knot (#17820) 2025-05-03 19:49:15 +02:00
async.md [ty] Support `async`/`await`, `async with` and `yield from` (#19595) 2025-07-30 11:51:21 +02:00
attributes.md [ty] Rename "possibly unbound" diagnostics to "possibly missing" (#20492) 2025-09-23 14:26:55 +00:00
classes.md [ty] don't assume that deferred type inference means deferred name resolution (#20160) 2025-08-29 16:19:45 -07:00
cycle.md [ty] Add cycle handling for unpacking targets (#18078) 2025-05-13 21:27:48 +00:00
decorators.md ty_python_semantic: add union type context to function call type errors 2025-05-09 13:40:51 -04:00
del.md [ty] No union with `Unknown` for module-global symbols (#20664) 2025-10-01 16:40:30 +02:00
deprecated.md [ty] Consistent use of American english (in rules) (#19488) 2025-07-22 16:10:38 +02:00
descriptor_protocol.md [ty] Use `typing.Self` for the first parameter of instance methods (#20517) 2025-09-29 21:08:08 +02:00
enums.md [ty] Enums: allow multiple aliases to point to the same member (#20669) 2025-10-01 15:51:53 +02:00
exhaustiveness_checking.md [ty] Fix subtyping for dynamic specializations (#20592) 2025-09-26 15:05:03 +02:00
final.md Rename Red Knot (#17820) 2025-05-03 19:49:15 +02:00
implicit_type_aliases.md [ty] no more diverging query cycles in type expressions (#20359) 2025-09-16 16:44:11 -07:00
instance_layout_conflict.md [ty] initial support for `slots=True` in dataclasses (#20278) 2025-09-07 18:25:35 +01:00
intersection_types.md [ty] Expansion of enums into unions of literals (#19382) 2025-07-21 19:37:55 +02:00
invalid_syntax.md Rename Red Knot (#17820) 2025-05-03 19:49:15 +02:00
known_constants.md Rename Red Knot (#17820) 2025-05-03 19:49:15 +02:00
mdtest_config.md Rename Red Knot (#17820) 2025-05-03 19:49:15 +02:00
mdtest_custom_typeshed.md [ty] Remove `Type::Tuple` (#19669) 2025-08-11 22:03:32 +01:00
metaclass.md Update class literal display to use `<class 'Foo'>` style (#17889) 2025-05-06 20:11:25 -04:00
mro.md [ty] Treat `Hashable`, and similar protocols, equivalently to `object` for subtyping/assignability (#20284) 2025-09-10 11:38:58 +01:00
named_tuple.md [ty] Use `typing.Self` for the first parameter of instance methods (#20517) 2025-09-29 21:08:08 +02:00
overloads.md [ty] Use `C[T]` instead of `C[Unknown]` for the upper bound of `Self` (#20479) 2025-09-23 14:02:25 +02:00
pep695_type_aliases.md [ty] Use `typing.Self` for the first parameter of instance methods (#20517) 2025-09-29 21:08:08 +02:00
properties.md [ty] `"foo".startswith` is not an instance of `types.MethodWrapperType` (#20317) 2025-09-10 11:14:26 +00:00
protocols.md [ty] Literal promotion refactor (#20646) 2025-09-30 14:22:36 +02:00
public_types.md [ty] No union with `Unknown` for module-global symbols (#20664) 2025-10-01 16:40:30 +02:00
statically_known_branches.md [ty] Rename "possibly unbound" diagnostics to "possibly missing" (#20492) 2025-09-23 14:26:55 +00:00
sys_platform.md Rename Red Knot (#17820) 2025-05-03 19:49:15 +02:00
sys_version_info.md Rename Red Knot (#17820) 2025-05-03 19:49:15 +02:00
t_strings.md [ty] Add support for PEP 750 t-strings (#20085) 2025-08-25 18:49:49 +00:00
terminal_statements.md [ty] improve lazy scope place lookup (#19321) 2025-07-25 07:11:11 +00:00
ty_extensions.md [ty] Fix CallableTypeOf[…] for classmethods (#20345) 2025-09-11 10:14:38 +02:00
typed_dict.md [ty] Use `typing.Self` for the first parameter of instance methods (#20517) 2025-09-29 21:08:08 +02:00
union_types.md [ty] Simplify unions of enum literals and subtypes thereof (#20324) 2025-09-10 15:54:06 +02:00
unpacking.md [ty] Infer more precise types for collection literals (#20360) 2025-09-17 18:51:50 -04:00
unreachable.md [ty] Rename "possibly unbound" diagnostics to "possibly missing" (#20492) 2025-09-23 14:26:55 +00:00