mirror of https://github.com/astral-sh/ruff
[ty] Exhaustiveness checking for generic classes (#21726)
## Summary We had tests for this already, but they used generic classes that were bivariant in their type parameter, and so this case wasn't captured. closes https://github.com/astral-sh/ty/issues/1702 ## Test Plan Updated Markdown tests
This commit is contained in:
parent
3a11e714c6
commit
5358ddae88
|
|
@ -284,10 +284,17 @@ python-version = "3.12"
|
|||
```py
|
||||
from typing import assert_never
|
||||
|
||||
class A[T]: ...
|
||||
class A[T]:
|
||||
value: T
|
||||
|
||||
class ASub[T](A[T]): ...
|
||||
class B[T]: ...
|
||||
class C[T]: ...
|
||||
|
||||
class B[T]:
|
||||
value: T
|
||||
|
||||
class C[T]:
|
||||
value: T
|
||||
|
||||
class D: ...
|
||||
class E: ...
|
||||
class F: ...
|
||||
|
|
|
|||
|
|
@ -336,6 +336,7 @@ fn pattern_kind_to_type<'db>(db: &'db dyn Db, kind: &PatternPredicateKind<'db>)
|
|||
infer_expression_type(db, *class_expr, TypeContext::default())
|
||||
.to_instance(db)
|
||||
.unwrap_or(Type::Never)
|
||||
.top_materialization(db)
|
||||
} else {
|
||||
Type::Never
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue