about summary refs log tree commit diff
path: root/compiler/rustc_trait_selection/src/traits/specialize
diff options
context:
space:
mode:
authorDan Aloni <alonid@gmail.com>2020-09-03 13:42:24 +0300
committerDan Aloni <alonid@gmail.com>2020-09-03 14:09:50 +0300
commit51742be6d8c828c956f662a8e9a472cd31886b4a (patch)
tree599aacc5a39a5fc3ac9f81a27033df7cc5ee37f8 /compiler/rustc_trait_selection/src/traits/specialize
parentc5a61319da34e931072f2ffe3d12e530034c8c07 (diff)
specialization_graph: avoid trimmed paths for OverlapError
Diffstat (limited to 'compiler/rustc_trait_selection/src/traits/specialize')
-rw-r--r--compiler/rustc_trait_selection/src/traits/specialize/specialization_graph.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/specialize/specialization_graph.rs b/compiler/rustc_trait_selection/src/traits/specialize/specialization_graph.rs
index 56b8354d68c..c8bcab6efd7 100644
--- a/compiler/rustc_trait_selection/src/traits/specialize/specialization_graph.rs
+++ b/compiler/rustc_trait_selection/src/traits/specialize/specialization_graph.rs
@@ -3,6 +3,7 @@ use super::OverlapError;
 use crate::traits;
 use rustc_hir::def_id::DefId;
 use rustc_middle::ty::fast_reject::{self, SimplifiedType};
+use rustc_middle::ty::print::with_no_trimmed_paths;
 use rustc_middle::ty::{self, TyCtxt, TypeFoldable};
 
 pub use rustc_middle::traits::specialization_graph::*;
@@ -102,7 +103,8 @@ impl ChildrenExt for Children {
                 let trait_ref = overlap.impl_header.trait_ref.unwrap();
                 let self_ty = trait_ref.self_ty();
 
-                OverlapError {
+                // FIXME: should postpone string formatting until we decide to actually emit.
+                with_no_trimmed_paths(|| OverlapError {
                     with_impl: possible_sibling,
                     trait_desc: trait_ref.print_only_trait_path().to_string(),
                     // Only report the `Self` type if it has at least
@@ -115,7 +117,7 @@ impl ChildrenExt for Children {
                     },
                     intercrate_ambiguity_causes: overlap.intercrate_ambiguity_causes,
                     involves_placeholder: overlap.involves_placeholder,
-                }
+                })
             };
 
             let report_overlap_error = |overlap: traits::coherence::OverlapResult<'_>,