about summary refs log tree commit diff
path: root/tests/ui/suggestions/missing-bound-in-manual-copy-impl-2.rs
blob: cdd92e3001d1eb413225d03323037bcd4d890cd7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//@ run-rustfix
#![allow(dead_code)]

#[derive(Clone)]
struct Wrapper<T>(T);

struct OnlyCopyIfDisplay<T>(std::marker::PhantomData<T>);

impl<T: std::fmt::Display> Clone for OnlyCopyIfDisplay<T> {
    fn clone(&self) -> Self {
        OnlyCopyIfDisplay(std::marker::PhantomData)
    }
}

impl<T: std::fmt::Display> Copy for OnlyCopyIfDisplay<T> {}

impl<S> Copy for Wrapper<OnlyCopyIfDisplay<S>> {}
//~^ ERROR the trait `Copy` cannot be implemented for this type

fn main() {}