@@ -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