about summary refs log tree commit diff
path: root/src/librustc
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2019-09-01 02:22:42 -0700
committerEsteban Küber <esteban@kuber.com.ar>2019-09-01 02:22:42 -0700
commita9ce33c059d0a91fb12a79d75aa1a868d76bf6f4 (patch)
tree78444237d968dd400ef36e50af43d6e3c3a673d2 /src/librustc
parentfba38ac27e2ade309f4c2504a6d6cd3556972a28 (diff)
downloadrust-a9ce33c059d0a91fb12a79d75aa1a868d76bf6f4.tar.gz
rust-a9ce33c059d0a91fb12a79d75aa1a868d76bf6f4.zip
Account for arbitrary self types in E0599
Diffstat (limited to 'src/librustc')
-rw-r--r--src/librustc/ty/context.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/librustc/ty/context.rs b/src/librustc/ty/context.rs
index e240e0df8b9..f355e231914 100644
--- a/src/librustc/ty/context.rs
+++ b/src/librustc/ty/context.rs
@@ -2403,6 +2403,24 @@ impl<'tcx> TyCtxt<'tcx> {
     }
 
     #[inline]
+    pub fn mk_pin(self, ty: Ty<'tcx>) -> Ty<'tcx> {
+        let def_id = self.require_lang_item(lang_items::PinTypeLangItem, None);
+        self.mk_generic_adt(def_id, ty)
+    }
+
+    #[inline]
+    pub fn mk_rc(self, ty: Ty<'tcx>) -> Ty<'tcx> {
+        let def_id = self.require_lang_item(lang_items::Rc, None);
+        self.mk_generic_adt(def_id, ty)
+    }
+
+    #[inline]
+    pub fn mk_arc(self, ty: Ty<'tcx>) -> Ty<'tcx> {
+        let def_id = self.require_lang_item(lang_items::Arc, None);
+        self.mk_generic_adt(def_id, ty)
+    }
+
+    #[inline]
     pub fn mk_maybe_uninit(self, ty: Ty<'tcx>) -> Ty<'tcx> {
         let def_id = self.require_lang_item(lang_items::MaybeUninitLangItem, None);
         self.mk_generic_adt(def_id, ty)