about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustc/infer/error_reporting/nice_region_error/placeholder_error.rs20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/librustc/infer/error_reporting/nice_region_error/placeholder_error.rs b/src/librustc/infer/error_reporting/nice_region_error/placeholder_error.rs
index 636b66bef01..892c56bf834 100644
--- a/src/librustc/infer/error_reporting/nice_region_error/placeholder_error.rs
+++ b/src/librustc/infer/error_reporting/nice_region_error/placeholder_error.rs
@@ -224,14 +224,18 @@ impl NiceRegionError<'me, 'gcx, 'tcx> {
             _ => (),
         }
 
-        let expected_trait_ref = ty::TraitRef {
-            def_id: trait_def_id,
-            substs: expected_substs,
-        };
-        let actual_trait_ref = ty::TraitRef {
-            def_id: trait_def_id,
-            substs: actual_substs,
-        };
+        let expected_trait_ref = self.infcx.resolve_type_vars_if_possible(
+            &ty::TraitRef {
+                def_id: trait_def_id,
+                substs: expected_substs,
+            }
+        );
+        let actual_trait_ref = self.infcx.resolve_type_vars_if_possible(
+            &ty::TraitRef {
+                def_id: trait_def_id,
+                substs: actual_substs,
+            }
+        );
 
         // Search the expected and actual trait references to see (a)
         // whether the sub/sup placeholders appear in them (sometimes