[ty] Complete support for `ParamSpec` #21445
Add support for `P.args` and `P.kwargs`
97dd83da
dhruvmanila
changed the title Add support for `P.args` and `P.kwargs` [ty] Add support for `P.args` and `P.kwargs` 220 days ago
Avoid raising error when `P` is used in invalid context
c32615af
Small docs tweak
ddedf204
Update `CallableType` to recode as ParamSpec value
e4229529
Merge branch 'main' into dhruv/paramspec-args-kwargs
b6d20eec
Remove debug logs
0f1dddc7
Initial attempt to add to generic infra
e34532cc
simplify generic code
46a45b79
Merge branch 'main' into dhruv/paramspec-args-kwargs
3b7cc3d8
Naively apply type mapping
336edc4e
Update mdtest
4697fcb1
Restrict callable upcast during specialization
d0b846ae
Consider `(*args: P.args, **kwargs: P.kwargs)` equivalent to `(**P)`
683e8b70
Fix constraint set to represent `P1 = P2`
87cb4221
Raise invalid argument type when `P.args` is matched against `P.kwargs`
6270f826
Merge branch 'main' into dhruv/paramspec-args-kwargs
06e37377
Display paramspec parameter list on single line
8af81946
Merge two branches of callable in specialization builder
ecb4b842
wip
1dca873f
Merge branch 'main' into dhruv/paramspec-args-kwargs
014d5bce
Fix merge errors
31438c0e
Merge branch 'main' into dhruv/paramspec-args-kwargs
c6e247e3
Try using a sub-call to evaluate paramspec
3680d94c
Merge branch 'main' into dhruv/paramspec-args-kwargs
a81b550c
Support `ParamSpec` in explicit specialization
4984259e
Update `paramspec_value` to take parameters instead of signature
9032d07c
Correctly implement the paramspec type / value inference
b37f5ce2
Avoid replacing paramspec variable itself for default type
b0511976
Run pre-commit
b11331ff
Merge branch 'main' into dhruv/paramspec-args-kwargs
454ce6f6
Fix after merging latest main
6fd1c21e
Merge branch 'main' into dhruv/paramspec-args-kwargs
0f9f1176
Merge branch 'main' into dhruv/paramspec-args-kwargs
f19ca407
Remove implicit type alias TODO related to ParamSpec
c5c2e70d
Merge branch 'main' into dhruv/paramspec-args-kwargs
2eab441d
Merge branch 'main' into dhruv/paramspec-args-kwargs
af5f5e70
Fix default specialization for paramspec
12d2fa41
Apply type mapping for return type while specializing paramspec
3056776f
Avoid creating union when `P` is mapped multiple times
f1f79bad
Remove paramspec special casing
bf908333
Update existing mdtest
427966a7
Add paramspec test cases
b5efe3c6
Relation checks for `P.args`/`P.kwargs`
e11d8d72
Merge branch 'main' into dhruv/paramspec-args-kwargs
a57874c5
Add more assignability check
dfeec73c
Avoid bound typevar for an unbounded paramspec
6c570280
Update mdtest
ed9b4c2d
Revert method rename
75e18a48
Fix fuzzer panics
198099a1
Fix ide tests
106253f9
Display gradual parameters on single line
a67e53f6
Merge branch 'main' into dhruv/paramspec-args-kwargs
0eeb3b19
Correctly pass around the ParamSpec type variable
b3582316
Merge branch 'main' into dhruv/paramspec-args-kwargs
75c850c7
Pass generic context during paramspec specialization
0db8bd65
Merge branch 'main' into dhruv/paramspec-args-kwargs
80b6a73c
Merge branch 'main' into dhruv/paramspec-args-kwargs
86b4fe2e
Add upper bound for `P.args` and `P.kwargs`
cb4aa2d7
Allow `ParamSpec` as annotation (revert)
0a1a26df
Allow passing `Any` to specialize a `ParamSpec`
ca5ecc87
dhruvmanila
changed the title [ty] Add support for `P.args` and `P.kwargs` [ty] Complete support for `ParamSpec` 201 days ago
dhruvmanila
marked this pull request as ready for review 201 days ago
Merge branch 'main' into dhruv/paramspec-args-kwargs
4c863000
Add test for operations on `P.args` / `P.kwargs`
6cfc7b9e
Add tests with overloads
774389b4
Remove leftover code from using the new solver
9767d9e6
Run pre-commit
5c870858
Merge branch 'main' into dhruv/paramspec-args-kwargs
cd2b7a8f
Address Alex's review comment on mdtests
cffe40f9
Address Alex's review comments on code changes
bffdffe4
Apply type mapping for `PartialSpecialization` as well
d81f15d6
Merge branch 'main' into dhruv/paramspec-args-kwargs
a1749e04
Expand documentation
c1ef796b
Add regression test for the cycle
423fda20
Merge branch 'main' into dhruv/paramspec-args-kwargs
edb26d21
Add explanation about allowing `Any` to specialize `ParamSpec`
9a578a38
Add test cases around instance attributes and `Final`
a48ac5e9
Use `assert!`
0dc24928
Fix TODO comment
72130206
Run pre-commit
18167b1b
dcreager
approved these changes
on 2025-12-05
Add TODO about variance
e5a4f596
dhruvmanila
deleted the dhruv/paramspec-args-kwargs branch 199 days ago
Assignees
No one assigned
Labels
ty
ecosystem-analyzer
Login to write a write a comment.
Login via GitHub