mirror of https://github.com/astral-sh/ruff
Patch panics for stringified annotations for now
This commit is contained in:
parent
343c6b6287
commit
c1e6ecccc0
|
|
@ -558,6 +558,23 @@ def _(
|
|||
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
|
||||
|
||||
A generic alias that is already fully specialized cannot be specialized again:
|
||||
|
|
|
|||
|
|
@ -759,6 +759,14 @@ impl<'db> TypeInferenceBuilder<'db, '_> {
|
|||
) -> Type<'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 {
|
||||
ast::Expr::Name(id) => {
|
||||
// TODO: This is an expensive call to an API that was never meant to be called from
|
||||
|
|
|
|||
Loading…
Reference in New Issue