23 lines
450 B
Rust
23 lines
450 B
Rust
|
// compile-flags: --crate-type=lib -Zmir-opt-level=2
|
||
|
// build-pass
|
||
|
// ^-- Must be build-pass, because check-pass will not run const prop.
|
||
|
|
||
|
pub trait TestTrait {
|
||
|
type MyType;
|
||
|
fn func() -> Option<Self>
|
||
|
where
|
||
|
Self: Sized;
|
||
|
}
|
||
|
|
||
|
impl<T> dyn TestTrait<MyType = T>
|
||
|
where
|
||
|
Self: Sized,
|
||
|
{
|
||
|
pub fn other_func() -> Option<Self> {
|
||
|
match Self::func() {
|
||
|
Some(me) => Some(me),
|
||
|
None => None,
|
||
|
}
|
||
|
}
|
||
|
}
|