//@ check-pass | |
use std::marker::PhantomData; | |
pub trait Foo<P> {} | |
impl <P, T: Foo<P>> Foo<P> for Option<T> {} | |
pub struct Qux<T> (PhantomData<*mut T>); | |
impl<T> Foo<*mut T> for Option<Qux<T>> {} | |
pub trait Bar { | |
type Output: 'static; | |
} | |
impl<T: 'static, W: Bar<Output = T>> Foo<*mut T> for W {} | |
fn main() {} |