]> git.lizzy.rs Git - rust.git/blobdiff - tests/ui/redundant_field_names.rs
Addition `manual_map` test for `unsafe` blocks
[rust.git] / tests / ui / redundant_field_names.rs
index 8a17ab0c9b67229b2d44e618df375a094c58ca74..3f97b80c56828c3842c451bb9b616bb3103e1eec 100644 (file)
@@ -1,6 +1,11 @@
-#![warn(redundant_field_names)]
-#![allow(unused_variables)]
-#![feature(inclusive_range,inclusive_range_syntax)]
+// run-rustfix
+#![warn(clippy::redundant_field_names)]
+#![allow(clippy::no_effect, dead_code, unused_variables)]
+
+#[macro_use]
+extern crate derive_new;
+
+use std::ops::{Range, RangeFrom, RangeInclusive, RangeTo, RangeToInclusive};
 
 mod foo {
     pub const BAR: u8 = 0;
@@ -14,6 +19,11 @@ struct Person {
     foo: u8,
 }
 
+#[derive(new)]
+pub struct S {
+    v: String,
+}
+
 fn main() {
     let gender: u8 = 42;
     let age = 0;
@@ -24,12 +34,12 @@ fn main() {
         gender: gender,
         age: age,
 
-        name, //should be ok
-        buzz: fizz, //should be ok
+        name,          //should be ok
+        buzz: fizz,    //should be ok
         foo: foo::BAR, //should be ok
     };
 
-    // Range syntax
+    // Range expressions
     let (start, end) = (0, 0);
 
     let _ = start..;
@@ -39,10 +49,23 @@ fn main() {
     let _ = ..=end;
     let _ = start..=end;
 
-    // TODO: the following should be linted
-    let _ = ::std::ops::RangeFrom { start: start };
-    let _ = ::std::ops::RangeTo { end: end };
-    let _ = ::std::ops::Range { start: start, end: end };
-    let _ = ::std::ops::RangeInclusive { start: start, end: end };
-    let _ = ::std::ops::RangeToInclusive { end: end };
+    // Issue #2799
+    let _: Vec<_> = (start..end).collect();
+
+    // hand-written Range family structs are linted
+    let _ = RangeFrom { start: start };
+    let _ = RangeTo { end: end };
+    let _ = Range { start: start, end: end };
+    let _ = RangeInclusive::new(start, end);
+    let _ = RangeToInclusive { end: end };
+}
+
+fn issue_3476() {
+    fn foo<T>() {}
+
+    struct S {
+        foo: fn(),
+    }
+
+    S { foo: foo::<i32> };
 }