ruff
[red-knot] Allow explicit specialization of generic classes
#17023
Merged

[red-knot] Allow explicit specialization of generic classes #17023

dcreager merged 85 commits into main from dcreager/special-class
dcreager
dcreager dcreager added ty
github-actions
dcreager Build context for generic classes
3be82571
dcreager Handle explicit specialization before outputting lints
4c76cb5d
dcreager Explicitly specialize classes
80486048
dcreager Track those structs
fe76d56d
dcreager Add Specialization
4346e7d2
dcreager Add CallableType::Specialized
2380ade7
dcreager dcreager force pushed from ca52aaae to 2380ade7 270 days ago
dcreager dcreager force pushed from e4af4122 to ca1dfc3d 269 days ago
dcreager dcreager force pushed from ca1dfc3d to 20726299 269 days ago
dcreager dcreager force pushed from 20726299 to d0a457c7 269 days ago
dcreager dcreager force pushed from d0a457c7 to cd5b3fbe 269 days ago
dcreager Use union to hold typevar constraints
178ee89d
dcreager Add Type::TypeVar variant
feb1ea9d
dcreager Fix failing tests
3c1ad797
dcreager doc Type::TypeVar
59430b64
dcreager More correct handling of final bounds/constraints
77ffa80d
dcreager use list[T] so generic funcs are callable even with Never
6f867204
dcreager lint
cf819679
dcreager Add (currently failing) narrowing tests
6615df18
dcreager Typevars _can_ be fully static I guess
b2f5a2a5
dcreager Simplify intersections with constrained typevars
590680cd
dcreager Merge branch 'main' into dcreager/typevar-type
e6b7d40a
dcreager Fix tests
debd60a5
dcreager lint
aa391fd2
dcreager Update crates/red_knot_python_semantic/src/types/type_ordering.rs
e57e62e0
dcreager Clarify that typevar is subtype of object too
3df79cc1
dcreager Clarify non-fully-static bounded typevars aren't subtypes
5b08e93b
dcreager Add more tests for constrained gradual typevars
82e810f9
dcreager Update crates/red_knot_python_semantic/src/types.rs
a3d72538
dcreager Simplify intersections with constrained typevars w/o glossing into union
15682d58
dcreager Simplify positive intersections too
9e07efe8
dcreager Intersection of constraints is subtype of typevar
fb63c224
dcreager Better descriptions of intersections of constrained typevars
34590562
dcreager Add multiple narrowing example
71d425e0
dcreager lint
233e9380
dcreager Sort typevar constraints
97852021
dcreager Remove moot todo
c86af502
dcreager Fold typevar match arms back into main match statement
aa008954
dcreager Remove moot comment
d99d1d75
dcreager Remove moot todo
58f0995c
dcreager Add more TODOs about OneOf connector
42fd54a5
dcreager add todos for unary/binary ops
6bd69f18
dcreager Merge remote-tracking branch 'origin/main' into dcreager/typevar-type
1d6a9179
dcreager Merge remote-tracking branch 'origin/dcreager/typevar-type' into dcre…
37692f15
dcreager Fix tests
3869dc68
dcreager Fix tests better
0c1745ba
dcreager Support unary and binary ops
8bdd9e2b
dcreager Merge remote-tracking branch 'origin/main' into dcreager/typevar-type
39244dd3
dcreager Merge remote-tracking branch 'origin/main' into dcreager/special-class
5694b3d3
dcreager Fix merge conflicts
123b9209
dcreager Rename to SpecializedCallable{,Type}
9e1767fc
dcreager Merge branch 'dcreager/typevar-type' into dcreager/special-class
23ac0b63
dcreager Specialize types
6b279475
dcreager Merge remote-tracking branch 'origin/main' into dcreager/special-class
669aa21f
dcreager Fix tests in ide crate
575998ea
dcreager dcreager force pushed from cd5b3fbe to 7d29d882 266 days ago
dcreager dcreager force pushed from 7d29d882 to 529413c3 266 days ago
dcreager Add GenericClass, NonGenericClass, and GenericAlias
f02fefa0
dcreager dcreager force pushed from 529413c3 to f02fefa0 266 days ago
dcreager Add GenericAlias
cc3a3dfe
dcreager Apply specializations
18af8b6f
dcreager Use class literal for self member lookups
af52fd16
dcreager Display specializations and generic aliases
d3fd8226
dcreager Specialize generic base class in generic subclass
aa649909
dcreager Merge branch 'main' into dcreager/special-class
e41f8899
dcreager dcreager force pushed from 6450d5d9 to e41f8899 265 days ago
dcreager Only specialize function literals, not all callables
7eb7c289
dcreager Fix descriptor protocol tests
adb4abaa
dcreager Merge branch 'main' into dcreager/special-class
968e6371
dcreager Remove unused methods
fd7914aa
dcreager clippy
7ebda981
dcreager Apply specialization to signature in-place
6257e89e
dcreager typo
78cd92ae
dcreager Fix test case
530e2bc1
dcreager lint
637fd484
dcreager Defer class definitions with string literals in base classes
ec5a5888
dcreager fix lint fix
27cb2083
dcreager skip failing test for now
ea125488
dcreager clippy and lint
c376dad1
dcreager add xfail for specializing to union of constraints
311dc596
dcreager specialize property types
5fc84254
dcreager Don't specialize function twice
7aaeb47a
dcreager
dcreager commented on 2025-04-07
dcreager fix docs
43554e2a
dcreager dcreager marked this pull request as ready for review 262 days ago
dcreager dcreager requested a review from carljm carljm 262 days ago
dcreager dcreager requested a review from AlexWaygood AlexWaygood 262 days ago
dcreager dcreager requested a review from sharkdp sharkdp 262 days ago
sharkdp
sharkdp commented on 2025-04-08
sharkdp
sharkdp commented on 2025-04-08
sharkdp
dcreager
carljm
carljm commented on 2025-04-08
carljm
carljm approved these changes on 2025-04-08
dcreager Merge remote-tracking branch 'origin/main' into dcreager/special-class
0d656db1
dcreager Better TODO fallback type
7c3405ad
dcreager Generic aliases are literals in type display
6593d90d
dcreager Explain self_instance not being specialized
7ca6a60b
dcreager Comment other non-specializations
dea493ef
dcreager Add xfail for generic method inside generic class
048bb8be
dcreager More Python-like displays for specializations
06859fa8
dcreager Narrow type(generic) better
d1384050
dcreager Better todos
0997eca7
dcreager Add TODO about property test data
6ab1b906
dcreager lint
bcb147ff
dcreager dcreager merged ff376fc2 into main 260 days ago
dcreager dcreager deleted the dcreager/special-class branch 260 days ago

Login to write a write a comment.

Login via GitHub

Assignees
No one assigned
Labels
Milestone