]> git.lizzy.rs Git - rust.git/blob - tests/ui/redundant_field_names.rs
Merge pull request #3285 from devonhollowood/pedantic-dogfood-items-after-statements
[rust.git] / tests / ui / redundant_field_names.rs
1 // Copyright 2014-2018 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution.
3 //
4 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
5 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
6 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
7 // option. This file may not be copied, modified, or distributed
8 // except according to those terms.
9
10
11 #![feature(tool_lints)]
12
13 #![warn(clippy::redundant_field_names)]
14 #![allow(unused_variables)]
15 #![feature(inclusive_range, inclusive_range_fields, inclusive_range_methods)]
16
17 #[macro_use]
18 extern crate derive_new;
19
20 use std::ops::{Range, RangeFrom, RangeTo, RangeInclusive, RangeToInclusive};
21
22 mod foo {
23     pub const BAR: u8 = 0;
24 }
25
26 struct Person {
27     gender: u8,
28     age: u8,
29     name: u8,
30     buzz: u64,
31     foo: u8,
32 }
33
34 #[derive(new)]
35 pub struct S {
36     v: String,
37 }
38
39 fn main() {
40     let gender: u8 = 42;
41     let age = 0;
42     let fizz: u64 = 0;
43     let name: u8 = 0;
44
45     let me = Person {
46         gender: gender,
47         age: age,
48
49         name, //should be ok
50         buzz: fizz, //should be ok
51         foo: foo::BAR, //should be ok
52     };
53
54     // Range expressions
55     let (start, end) = (0, 0);
56
57     let _ = start..;
58     let _ = ..end;
59     let _ = start..end;
60
61     let _ = ..=end;
62     let _ = start..=end;
63
64     // Issue #2799
65     let _: Vec<_> = (start..end).collect();
66
67     // hand-written Range family structs are linted
68     let _ = RangeFrom { start: start };
69     let _ = RangeTo { end: end };
70     let _ = Range { start: start, end: end };
71     let _ = RangeInclusive::new(start, end);
72     let _ = RangeToInclusive { end: end };
73 }