Skip to content

Commit 0a41b1e

Browse files
committed
[ty] Exclude @todo types from assert_{type,never} checks
1 parent f317a71 commit 0a41b1e

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

crates/ty_python_semantic/src/types/function.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1358,6 +1358,8 @@ impl KnownFunction {
13581358
let db = context.db();
13591359
let parameter_types = overload.parameter_types();
13601360

1361+
let is_todo_type = |ty: Type<'db>| ty.is_todo();
1362+
13611363
match self {
13621364
KnownFunction::RevealType => {
13631365
let revealed_type = overload
@@ -1391,7 +1393,10 @@ impl KnownFunction {
13911393
let [Some(actual_ty), Some(asserted_ty)] = parameter_types else {
13921394
return;
13931395
};
1394-
if actual_ty.is_equivalent_to(db, *asserted_ty) {
1396+
if actual_ty.is_equivalent_to(db, *asserted_ty)
1397+
|| any_over_type(db, *actual_ty, &is_todo_type, true)
1398+
|| any_over_type(db, *asserted_ty, &is_todo_type, true)
1399+
{
13951400
return;
13961401
}
13971402
if let Some(builder) = context.report_lint(&TYPE_ASSERTION_FAILURE, call_expression)
@@ -1427,7 +1432,9 @@ impl KnownFunction {
14271432
let [Some(actual_ty)] = parameter_types else {
14281433
return;
14291434
};
1430-
if actual_ty.is_equivalent_to(db, Type::Never) {
1435+
if actual_ty.is_equivalent_to(db, Type::Never)
1436+
|| any_over_type(db, *actual_ty, &is_todo_type, true)
1437+
{
14311438
return;
14321439
}
14331440
if let Some(builder) = context.report_lint(&TYPE_ASSERTION_FAILURE, call_expression)

0 commit comments

Comments
 (0)