blob: 89c30fcd267447a35f0eb89f8bfbd325238e6d41 [file] [log] [blame]
use std::fmt;
use crate::{Interner, TraitRef};
pub trait IrPrint<T> {
fn print(t: &T, fmt: &mut fmt::Formatter<'_>) -> fmt::Result;
}
macro_rules! define_display_via_print {
($($ty:ident,)*) => {
$(
impl<I: Interner> fmt::Display for $ty<I> {
fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
<I as IrPrint<$ty<I>>>::print(self, fmt)
}
}
)*
}
}
define_display_via_print!(TraitRef,);