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]
|
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:
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue