rust/tests/ui/trait-bounds/issue-94999.rs

35 lines
379 B
Rust

//@ check-pass
trait Identity<Q> {
type T;
}
impl<Q, T> Identity<Q> for T {
type T = T;
}
trait Holds {
type Q;
}
struct S;
struct X(S);
struct XHelper;
impl Holds for X {
type Q = XHelper;
}
impl<Q> Clone for X
where
<S as Identity<Q>>::T: Clone,
X: Holds<Q = Q>,
{
fn clone(&self) -> Self {
Self(self.0.clone())
}
}
fn main() {}