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