From 939c69c71f8583e37f536a0c6da75c31bc878383 Mon Sep 17 00:00:00 2001 From: Eduard-Mihai Burtescu Date: Sat, 8 Dec 2018 01:13:23 +0200 Subject: [PATCH] rustc: use define_print! to implement fmt::{Display,Debug} for Kind. --- src/librustc/ty/subst.rs | 19 ------------------- src/librustc/util/ppaux.rs | 19 ++++++++++++++++++- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/src/librustc/ty/subst.rs b/src/librustc/ty/subst.rs index 85a05bb9f55..973f7f15f84 100644 --- a/src/librustc/ty/subst.rs +++ b/src/librustc/ty/subst.rs @@ -13,7 +13,6 @@ use core::intrinsics; use std::cmp::Ordering; -use std::fmt; use std::marker::PhantomData; use std::mem; use std::num::NonZeroUsize; @@ -115,26 +114,8 @@ pub fn unpack(self) -> UnpackedKind<'tcx> { } } -impl<'tcx> fmt::Debug for Kind<'tcx> { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - match self.unpack() { - UnpackedKind::Lifetime(lt) => write!(f, "{:?}", lt), - UnpackedKind::Type(ty) => write!(f, "{:?}", ty), UnpackedKind::Const(ct) => write!(f, "{:?}", ct), - } - } -} - -impl<'tcx> fmt::Display for Kind<'tcx> { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - match self.unpack() { - UnpackedKind::Lifetime(lt) => write!(f, "{}", lt), - UnpackedKind::Type(ty) => write!(f, "{}", ty), UnpackedKind::Const(ct) => write!(f, "{}", ct), - } - } -} - impl<'a, 'tcx> Lift<'tcx> for Kind<'a> { type Lifted = Kind<'tcx>; diff --git a/src/librustc/util/ppaux.rs b/src/librustc/util/ppaux.rs index b56ce0665e9..c2b2cf4e62f 100644 --- a/src/librustc/util/ppaux.rs +++ b/src/librustc/util/ppaux.rs @@ -1,7 +1,7 @@ use crate::hir::def_id::DefId; use crate::hir::map::definitions::DefPathData; use crate::middle::region; -use crate::ty::subst::{self, Subst, SubstsRef}; +use crate::ty::subst::{self, Kind, Subst, SubstsRef, UnpackedKind}; use crate::ty::{BrAnon, BrEnv, BrFresh, BrNamed}; use crate::ty::{Bool, Char, Adt}; use crate::ty::{Error, Str, Array, Slice, Float, FnDef, FnPtr}; @@ -1535,3 +1535,20 @@ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { } } } + +define_print! { + ('tcx) Kind<'tcx>, (self, f, cx) { + display { + match self.unpack() { + UnpackedKind::Lifetime(lt) => print!(f, cx, print(lt)), + UnpackedKind::Type(ty) => print!(f, cx, print(ty)), + } + } + debug { + match self.unpack() { + UnpackedKind::Lifetime(lt) => print!(f, cx, print(lt)), + UnpackedKind::Type(ty) => print!(f, cx, print(ty)), + } + } + } +} -- 2.44.0