aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/rust/compile/torture/generics9.rs
blob: 3d9d748ef98cd9d4544bee48d99e9db3ee503711 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#[lang = "sized"]
pub trait Sized {}

struct GenericStruct<T>(T, usize);

impl<T> GenericStruct<T> {
    fn new(a: T, b: usize) -> Self {
        GenericStruct(a, b)
    }

    fn get(self) -> T {
        self.0
    }
}

fn main() {
    let a: GenericStruct<i32> = GenericStruct::<i32>::new(123, 456);
    let aa: i32 = a.get();
    // { dg-warning "unused name" "" { target *-*-* } .-1 }

    let b: GenericStruct<u32> = GenericStruct::<_>::new(123, 456);
    let bb: u32 = b.get();
    // { dg-warning "unused name" "" { target *-*-* } .-1 }

    let c: GenericStruct<f32> = GenericStruct::new(123f32, 456);
    let cc: f32 = c.get();
    // { dg-warning "unused name" "" { target *-*-* } .-1 }
}