about summary refs log tree commit diff
path: root/compiler/rustc_trait_selection/src/solve/trait_goals.rs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/rustc_trait_selection/src/solve/trait_goals.rs')
-rw-r--r--compiler/rustc_trait_selection/src/solve/trait_goals.rs17
1 files changed, 3 insertions, 14 deletions
diff --git a/compiler/rustc_trait_selection/src/solve/trait_goals.rs b/compiler/rustc_trait_selection/src/solve/trait_goals.rs
index 761f5327f6d..930e62d6388 100644
--- a/compiler/rustc_trait_selection/src/solve/trait_goals.rs
+++ b/compiler/rustc_trait_selection/src/solve/trait_goals.rs
@@ -223,20 +223,9 @@ impl<'tcx> assembly::GoalKind<'tcx> for TraitPredicate<'tcx> {
             return ecx.evaluate_added_goals_and_make_canonical_response(Certainty::AMBIGUOUS);
         }
 
-        // First, try computing an exact naive layout in case the type is generic.
-        let is_pointer_like = if let Ok(layout) = tcx.naive_layout_of(key) {
-            layout.is_pointer_like(&tcx.data_layout).unwrap_or_else(|| {
-                // Second, we fall back to full layout computation.
-                tcx.layout_of(key)
-                    .ok()
-                    .filter(|l| l.layout.is_pointer_like(&tcx.data_layout))
-                    .is_some()
-            })
-        } else {
-            false
-        };
-
-        if is_pointer_like {
+        if let Ok(layout) = tcx.layout_of(key)
+            && layout.layout.is_pointer_like(&tcx.data_layout)
+        {
             // FIXME: We could make this faster by making a no-constraints response
             ecx.evaluate_added_goals_and_make_canonical_response(Certainty::Yes)
         } else {