//@ check-pass use std::marker::PhantomData; pub struct MyGenericType<T> { _marker: PhantomData<*const T>, } pub struct MyNonGenericType; impl<T> From<MyGenericType<T>> for MyNonGenericType { fn from(_: MyGenericType<T>) -> Self { todo!() } } pub trait MyTrait { const MY_CONSTANT: i32; } impl<T> MyTrait for MyGenericType<T> where Self: Into<MyNonGenericType>, { const MY_CONSTANT: i32 = 1; } impl<T> MyGenericType<T> { const MY_OTHER_CONSTANT: i32 = <MyGenericType<T> as MyTrait>::MY_CONSTANT; } fn main() {}