提交 728a2db3 编写于 作者: V varkor

Add expect_ty method to Kind

上级 597f4324
......@@ -123,6 +123,16 @@ pub fn unpack(self) -> UnpackedKind<'tcx> {
}
}
}
/// Unpack the `Kind` as a type when it is known certainly to be a type.
/// This is true in cases where `Substs` is used in places where the kinds are known
/// to be limited (e.g. in tuples, where the only parameters are type parameters).
pub fn expect_ty(self) -> Ty<'tcx> {
match self.unpack() {
UnpackedKind::Type(ty) => ty,
_ => bug!("expected a type, but found another kind"),
}
}
}
impl<'a, 'tcx> Lift<'tcx> for Kind<'a> {
......@@ -174,8 +184,7 @@ fn decode<D: Decoder>(d: &mut D) -> Result<Kind<'tcx>, D::Error> {
impl<'a, 'gcx, 'tcx> InternalSubsts<'tcx> {
/// Creates a `InternalSubsts` that maps each generic parameter to itself.
pub fn identity_for_item(tcx: TyCtxt<'a, 'gcx, 'tcx>, def_id: DefId)
-> SubstsRef<'tcx> {
pub fn identity_for_item(tcx: TyCtxt<'a, 'gcx, 'tcx>, def_id: DefId) -> SubstsRef<'tcx> {
Self::for_item(tcx, def_id, |param, _| {
tcx.mk_param_from_def(param)
})
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册