about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBastian Kauschke <bastian_kauschke@hotmail.de>2020-06-27 13:15:12 +0200
committerBastian Kauschke <bastian_kauschke@hotmail.de>2020-06-27 13:15:12 +0200
commit1875c797721a84b3a4cbb77d4e4bd0a367ff22c3 (patch)
tree3cfa3bfeabc17fcf5d7a8eb486995a646d1fdfe9
parenta4e7b4798405917560a224b6e9f2eab07524e0b7 (diff)
downloadrust-1875c797721a84b3a4cbb77d4e4bd0a367ff22c3.tar.gz
rust-1875c797721a84b3a4cbb77d4e4bd0a367ff22c3.zip
more LocalDefId in ty::context
-rw-r--r--src/librustc_infer/infer/error_reporting/nice_region_error/static_impl_trait.rs3
-rw-r--r--src/librustc_middle/ty/context.rs11
-rw-r--r--src/librustc_mir/borrow_check/diagnostics/region_errors.rs2
3 files changed, 10 insertions, 6 deletions
diff --git a/src/librustc_infer/infer/error_reporting/nice_region_error/static_impl_trait.rs b/src/librustc_infer/infer/error_reporting/nice_region_error/static_impl_trait.rs
index 46dad81a099..d881a529cad 100644
--- a/src/librustc_infer/infer/error_reporting/nice_region_error/static_impl_trait.rs
+++ b/src/librustc_infer/infer/error_reporting/nice_region_error/static_impl_trait.rs
@@ -26,7 +26,8 @@ impl<'a, 'tcx> NiceRegionError<'a, 'tcx> {
                 );
                 let anon_reg_sup = self.tcx().is_suitable_region(sup_r)?;
                 debug!("try_report_static_impl_trait: anon_reg_sup={:?}", anon_reg_sup);
-                let fn_returns = self.tcx().return_type_impl_or_dyn_traits(anon_reg_sup.def_id);
+                let fn_returns =
+                    self.tcx().return_type_impl_or_dyn_traits(anon_reg_sup.def_id.expect_local());
                 if fn_returns.is_empty() {
                     return None;
                 }
diff --git a/src/librustc_middle/ty/context.rs b/src/librustc_middle/ty/context.rs
index df08e083d2c..fb89e0e41d9 100644
--- a/src/librustc_middle/ty/context.rs
+++ b/src/librustc_middle/ty/context.rs
@@ -1436,8 +1436,11 @@ impl<'tcx> TyCtxt<'tcx> {
     }
 
     /// Given a `DefId` for an `fn`, return all the `dyn` and `impl` traits in its return type.
-    pub fn return_type_impl_or_dyn_traits(&self, scope_def_id: DefId) -> Vec<&'tcx hir::Ty<'tcx>> {
-        let hir_id = self.hir().as_local_hir_id(scope_def_id.expect_local());
+    pub fn return_type_impl_or_dyn_traits(
+        &self,
+        scope_def_id: LocalDefId,
+    ) -> Vec<&'tcx hir::Ty<'tcx>> {
+        let hir_id = self.hir().as_local_hir_id(scope_def_id);
         let hir_output = match self.hir().get(hir_id) {
             Node::Item(hir::Item {
                 kind:
@@ -1480,9 +1483,9 @@ impl<'tcx> TyCtxt<'tcx> {
         v.0
     }
 
-    pub fn return_type_impl_trait(&self, scope_def_id: DefId) -> Option<(Ty<'tcx>, Span)> {
+    pub fn return_type_impl_trait(&self, scope_def_id: LocalDefId) -> Option<(Ty<'tcx>, Span)> {
         // HACK: `type_of_def_id()` will fail on these (#55796), so return `None`.
-        let hir_id = self.hir().as_local_hir_id(scope_def_id.expect_local());
+        let hir_id = self.hir().as_local_hir_id(scope_def_id);
         match self.hir().get(hir_id) {
             Node::Item(item) => {
                 match item.kind {
diff --git a/src/librustc_mir/borrow_check/diagnostics/region_errors.rs b/src/librustc_mir/borrow_check/diagnostics/region_errors.rs
index f1923b9e81c..d639a0f69d4 100644
--- a/src/librustc_mir/borrow_check/diagnostics/region_errors.rs
+++ b/src/librustc_mir/borrow_check/diagnostics/region_errors.rs
@@ -583,7 +583,7 @@ impl<'a, 'tcx> MirBorrowckCtxt<'a, 'tcx> {
                 .infcx
                 .tcx
                 .is_suitable_region(f)
-                .map(|r| r.def_id)
+                .map(|r| r.def_id.expect_local())
                 .map(|id| self.infcx.tcx.return_type_impl_trait(id))
                 .unwrap_or(None)
             {