[red-knot] Any cannot be parameterized (#14933)

This commit is contained in:
Alex Waygood 2024-12-12 11:50:34 +00:00 committed by GitHub
parent 82faa9bb62
commit 45b565cbb5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 23 additions and 1 deletions

View file

@ -69,3 +69,15 @@ y: int = Subclass() # error: [invalid-assignment]
def _(s: Subclass): def _(s: Subclass):
reveal_type(s) # revealed: Subclass reveal_type(s) # revealed: Subclass
``` ```
## Invalid
`Any` cannot be parameterized:
```py
from typing import Any
# error: [invalid-type-parameter] "Type `typing.Any` expected no type parameter"
def f(x: Any[int]):
reveal_type(x) # revealed: Unknown
```

View file

@ -4863,7 +4863,17 @@ impl<'db> TypeInferenceBuilder<'db> {
} }
KnownInstanceType::Type => self.infer_subclass_of_type_expression(parameters), KnownInstanceType::Type => self.infer_subclass_of_type_expression(parameters),
KnownInstanceType::Tuple => self.infer_tuple_type_expression(parameters), KnownInstanceType::Tuple => self.infer_tuple_type_expression(parameters),
KnownInstanceType::Any => Type::Any, KnownInstanceType::Any => {
self.diagnostics.add_lint(
&INVALID_TYPE_PARAMETER,
subscript.into(),
format_args!(
"Type `{}` expected no type parameter",
known_instance.repr(self.db)
),
);
Type::Unknown
}
} }
} }