]> git.lizzy.rs Git - rust.git/blob - tests/ui/redundant_field_names.rs
Auto merge of #68717 - petrochenkov:stabexpat, r=varkor
[rust.git] / tests / ui / redundant_field_names.rs
1 // run-rustfix
2 #![warn(clippy::redundant_field_names)]
3 #![allow(clippy::no_effect, dead_code, unused_variables)]
4
5 #[macro_use]
6 extern crate derive_new;
7
8 use std::ops::{Range, RangeFrom, RangeInclusive, RangeTo, RangeToInclusive};
9
10 mod foo {
11     pub const BAR: u8 = 0;
12 }
13
14 struct Person {
15     gender: u8,
16     age: u8,
17     name: u8,
18     buzz: u64,
19     foo: u8,
20 }
21
22 #[derive(new)]
23 pub struct S {
24     v: String,
25 }
26
27 fn main() {
28     let gender: u8 = 42;
29     let age = 0;
30     let fizz: u64 = 0;
31     let name: u8 = 0;
32
33     let me = Person {
34         gender: gender,
35         age: age,
36
37         name,          //should be ok
38         buzz: fizz,    //should be ok
39         foo: foo::BAR, //should be ok
40     };
41
42     // Range expressions
43     let (start, end) = (0, 0);
44
45     let _ = start..;
46     let _ = ..end;
47     let _ = start..end;
48
49     let _ = ..=end;
50     let _ = start..=end;
51
52     // Issue #2799
53     let _: Vec<_> = (start..end).collect();
54
55     // hand-written Range family structs are linted
56     let _ = RangeFrom { start: start };
57     let _ = RangeTo { end: end };
58     let _ = Range { start: start, end: end };
59     let _ = RangeInclusive::new(start, end);
60     let _ = RangeToInclusive { end: end };
61 }
62
63 fn issue_3476() {
64     fn foo<T>() {}
65
66     struct S {
67         foo: fn(),
68     }
69
70     S { foo: foo::<i32> };
71 }