|
1 | 1 | use std::fmt;
|
2 | 2 |
|
3 | 3 | use rustc_data_structures::intern::Interned;
|
4 |
| -use rustc_macros::{HashStable, TyDecodable, TyEncodable, TypeFoldable, TypeVisitable}; |
5 |
| -use rustc_type_ir::{FlagComputation, Flags}; |
| 4 | +use rustc_macros::HashStable; |
| 5 | +use rustc_type_ir::ir_print::IrPrint; |
| 6 | +use rustc_type_ir::{ |
| 7 | + FlagComputation, Flags, {self as ir}, |
| 8 | +}; |
6 | 9 |
|
| 10 | +use super::TyCtxt; |
7 | 11 | use crate::ty;
|
8 | 12 |
|
| 13 | +pub type PatternKind<'tcx> = ir::PatternKind<TyCtxt<'tcx>>; |
| 14 | + |
9 | 15 | #[derive(Copy, Clone, PartialEq, Eq, Hash, HashStable)]
|
10 | 16 | #[rustc_pass_by_value]
|
11 | 17 | pub struct Pattern<'tcx>(pub Interned<'tcx, PatternKind<'tcx>>);
|
@@ -43,9 +49,9 @@ impl<'tcx> fmt::Debug for Pattern<'tcx> {
|
43 | 49 | }
|
44 | 50 | }
|
45 | 51 |
|
46 |
| -impl<'tcx> fmt::Debug for PatternKind<'tcx> { |
47 |
| - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { |
48 |
| - match *self { |
| 52 | +impl<'tcx> IrPrint<PatternKind<'tcx>> for TyCtxt<'tcx> { |
| 53 | + fn print(t: &PatternKind<'tcx>, f: &mut fmt::Formatter<'_>) -> fmt::Result { |
| 54 | + match *t { |
49 | 55 | PatternKind::Range { start, end } => {
|
50 | 56 | write!(f, "{start}")?;
|
51 | 57 |
|
@@ -73,10 +79,15 @@ impl<'tcx> fmt::Debug for PatternKind<'tcx> {
|
73 | 79 | }
|
74 | 80 | }
|
75 | 81 | }
|
| 82 | + |
| 83 | + fn print_debug(t: &PatternKind<'tcx>, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { |
| 84 | + Self::print(t, fmt) |
| 85 | + } |
76 | 86 | }
|
77 | 87 |
|
78 |
| -#[derive(Clone, PartialEq, Eq, Hash)] |
79 |
| -#[derive(HashStable, TyEncodable, TyDecodable, TypeVisitable, TypeFoldable)] |
80 |
| -pub enum PatternKind<'tcx> { |
81 |
| - Range { start: ty::Const<'tcx>, end: ty::Const<'tcx> }, |
| 88 | +impl<'tcx> rustc_type_ir::inherent::IntoKind for Pattern<'tcx> { |
| 89 | + type Kind = PatternKind<'tcx>; |
| 90 | + fn kind(self) -> Self::Kind { |
| 91 | + *self |
| 92 | + } |
82 | 93 | }
|
0 commit comments