| //@ check-pass | 
 |  | 
 | // Regression test for #54378. | 
 |  | 
 | #![feature(never_type)] | 
 |  | 
 | use std::marker::PhantomData; | 
 |  | 
 | pub trait Machine<'a, 'mir, 'tcx>: Sized { | 
 |     type MemoryKinds: ::std::fmt::Debug + Copy + Eq; | 
 |     const MUT_STATIC_KIND: Option<Self::MemoryKinds>; | 
 | } | 
 |  | 
 | pub struct CompileTimeEvaluator<'a, 'mir, 'tcx: 'a+'mir> { | 
 |     pub _data: PhantomData<(&'a (), &'mir (), &'tcx ())>, | 
 | } | 
 |  | 
 | impl<'a, 'mir, 'tcx: 'a + 'mir> Machine<'a, 'mir, 'tcx> | 
 |     for CompileTimeEvaluator<'a, 'mir, 'tcx> | 
 | { | 
 |     type MemoryKinds = !; | 
 |  | 
 |     const MUT_STATIC_KIND: Option<!> = None; | 
 | } | 
 |  | 
 | fn main() {} |