//@ 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() {} |