Patch panics for stringified annotations for now

This commit is contained in:
David Peter 2025-11-24 13:48:11 +01:00
parent 343c6b6287
commit c1e6ecccc0
2 changed files with 25 additions and 0 deletions

View File

@ -558,6 +558,23 @@ def _(
reveal_type(list_of_ints2) # revealed: list[int] reveal_type(list_of_ints2) # revealed: list[int]
``` ```
### In stringified annotations
Generic implicit type aliases can be specialized in stringified annotations:
```py
from typing_extensions import TypeVar
T = TypeVar("T")
MyList = list[T]
def _(
list_of_ints: "MyList[int]",
):
reveal_type(list_of_ints) # revealed: @Todo(Specialization of generic type alias in stringified annotation)
```
### Error cases ### Error cases
A generic alias that is already fully specialized cannot be specialized again: A generic alias that is already fully specialized cannot be specialized again:

View File

@ -759,6 +759,14 @@ impl<'db> TypeInferenceBuilder<'db, '_> {
) -> Type<'db> { ) -> Type<'db> {
let db = self.db(); let db = self.db();
if self
.index
.try_expression_scope_id(&ast::ExprRef::from(subscript))
.is_none()
{
return todo_type!("Specialization of generic type alias in stringified annotation");
}
let definitions = match &*subscript.value { let definitions = match &*subscript.value {
ast::Expr::Name(id) => { ast::Expr::Name(id) => {
// TODO: This is an expensive call to an API that was never meant to be called from // TODO: This is an expensive call to an API that was never meant to be called from