diff --git a/src/Psalm/Internal/Type/AssertionReconciler.php b/src/Psalm/Internal/Type/AssertionReconciler.php
index <HASH>..<HASH> 100644
--- a/src/Psalm/Internal/Type/AssertionReconciler.php
+++ b/src/Psalm/Internal/Type/AssertionReconciler.php
@@ -2435,7 +2435,14 @@ class AssertionReconciler extends \Psalm\Type\Reconciler
                             $existing_type_part->type_params
                         );
                     }
-                } elseif ($atomic_comparison_results->type_coerced) {
+                } elseif (TypeAnalyzer::isAtomicContainedBy(
+                    $codebase,
+                    $existing_type_part,
+                    $new_type_part,
+                    true,
+                    false,
+                    null
+                )) {
                     $has_local_match = true;
                     $matching_atomic_types[] = $existing_type_part;
                 }
Use more robust, if slower, mechanism that’s intersection-safe