ruff/crates/ty_python_semantic/resources/mdtest
Dhruv Manilawala bb9be263c7
[ty] Retry parameter matching for argument type expansion (#20153)
## Summary

This PR addresses an issue for a variadic argument when involved in
argument type expansion of overload call evaluation.

The issue is that the expansion of the variadic argument could result in
argument list of different arity. For example, in `*args: tuple[int] |
tuple[int, str]`, the expansion would lead to the variadic argument
being unpacked into 1 and 2 element respectively. This means that the
parameter matching that was performed initially isn't sufficient and
each expanded argument list would need to redo the parameter matching
again.

This is currently done by redoing the parameter matching directly,
maintaining the state of argument forms (and the conflicting forms), and
updating the `Bindings` values if it changes.

Closes: astral-sh/ty#735

## Test Plan

Update existing mdtest.
2025-09-12 08:40:07 +00:00
..
annotations [ty] Use 'unknown' specialization for upper bound on Self (#20325) 2025-09-10 17:00:28 +02:00
assignment [ty] Infer slightly more precise types for comprehensions (#20111) 2025-08-27 13:21:47 +01:00
binary [ty] Remove special casing for string-literal-in-tuple __contains__ (#19642) 2025-07-31 11:28:03 +01:00
boolean
boundness_declaredness
call [ty] Retry parameter matching for argument type expansion (#20153) 2025-09-12 08:40:07 +00:00
class [ty] Remove use of ClassBase::try_from_type from super() machinery (#19902) 2025-08-14 22:14:31 +01:00
comparison [ty] Enum literal types (#19328) 2025-07-15 21:31:53 +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] Improve specialization-error diagnostics (#20326) 2025-09-10 14:01:23 +02:00
directives [ty] Infer slightly more precise types for comprehensions (#20111) 2025-08-27 13:21:47 +01:00
doc
exception [ty] Use separate Rust types for bound and unbound type variables (#19796) 2025-08-11 15:29:58 -04:00
expression [ty] Minor fixes to Protocol tests (#20347) 2025-09-11 14:42:13 +00:00
function [ty] Improve disambiguation of types via fully qualified names (#20141) 2025-08-29 08:44:18 +00:00
generics [ty] Minor fixes to Protocol tests (#20347) 2025-09-11 14:42:13 +00:00
ide_support [ty] Fix attribute access on TypedDicts (#19758) 2025-08-05 13:59:10 +02:00
import [ty] Infer slightly more precise types for comprehensions (#20111) 2025-08-27 13:21:47 +01:00
literal [ty] Infer slightly more precise types for comprehensions (#20111) 2025-08-27 13:21:47 +01:00
loops [ty] Add precise iteration and unpacking inference for string literals and bytes literals (#20023) 2025-08-22 19:33:08 +01:00
narrow [ty] equality narrowing on enums that don't override __eq__ or __ne__ (#20285) 2025-09-08 16:56:28 -07:00
regression
scopes [ty] fix deferred name loading in PEP695 generic classes/functions (#19888) 2025-08-13 15:51:59 -07:00
shadowing
snapshots [ty] Improve specialization-error diagnostics (#20326) 2025-09-10 14:01:23 +02:00
stubs
subscript [ty] __class_getitem__ is a classmethod (#20192) 2025-09-01 11:22:19 +02:00
suppressions [ty] Consistent use of American english (in rules) (#19488) 2025-07-22 16:10:38 +02:00
type_compendium [ty] Allow protocols to participate in nominal subtyping as well as structural subtyping (#20314) 2025-09-10 11:05:50 +00:00
type_of [ty] Improve the Display for generic type[] types (#19667) 2025-07-31 19:45:01 +01:00
type_properties [ty] Add mdtests that exercise constraint sets (#20319) 2025-09-10 13:22:19 -04:00
type_qualifiers Revert "[ty] Use invalid-assignment error code for invalid assignments to ClassVars" (#20158) 2025-08-29 19:48:45 +01:00
unary
with [ty] Diagnostics for async context managers (#19704) 2025-08-05 07:41:37 -07:00
.mdformat.toml
async.md [ty] Support async/await, async with and yield from (#19595) 2025-07-30 11:51:21 +02:00
attributes.md [ty] use Type::Divergent to avoid panic in infinitely-nested-tuple implicit attribute (#20333) 2025-09-11 06:51:22 -07: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
decorators.md
del.md [ty] Infer slightly more precise types for comprehensions (#20111) 2025-08-27 13:21:47 +01:00
deprecated.md [ty] Consistent use of American english (in rules) (#19488) 2025-07-22 16:10:38 +02:00
descriptor_protocol.md [ty] "foo".startswith is not an instance of types.MethodWrapperType (#20317) 2025-09-10 11:14:26 +00:00
enums.md [ty] Infer the correct type of Enum __eq__ and __ne__ comparisions (#19666) 2025-08-18 19:45:44 +02:00
exhaustiveness_checking.md [ty] Narrow specialized generics using isinstance() (#20256) 2025-09-04 15:28:33 -07:00
final.md
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
known_constants.md
mdtest_config.md
mdtest_custom_typeshed.md [ty] Remove Type::Tuple (#19669) 2025-08-11 22:03:32 +01:00
metaclass.md
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] Better error message for attempting to assign to a read-only property (#20150) 2025-08-29 13:22:23 +00:00
overloads.md [ty] Track different uses of legacy typevars, including context when rendering typevars (#19604) 2025-08-01 12:20:32 -04:00
pep695_type_aliases.md [ty] Add support for generic PEP695 type aliases (#20219) 2025-09-08 13:26:21 -07: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] Minor fixes to Protocol tests (#20347) 2025-09-11 14:42:13 +00:00
public_types.md [ty] more precise lazy scope place lookup (#19932) 2025-09-08 21:08:35 +00:00
statically_known_branches.md [ty] Evaluate reachability of non-definitely-bound to Ambiguous (#19579) 2025-08-28 14:34:49 +02:00
sys_platform.md
sys_version_info.md
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] Minor: 'can not' => cannot (#20260) 2025-09-05 09:19:14 +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 slightly more precise types for comprehensions (#20111) 2025-08-27 13:21:47 +01:00
unreachable.md [ty] improve lazy scope place lookup (#19321) 2025-07-25 07:11:11 +00:00