]> git.lizzy.rs Git - rust.git/blobdiff - tests/ui/let_return.rs
iterate List by value
[rust.git] / tests / ui / let_return.rs
index 9b584d6e293ce89cf2e6ca077db8da950ecc025c..23645d48fe79913acf7f7c856ca5fa846ee2ee72 100644 (file)
@@ -1,7 +1,4 @@
-#![feature(tool_lints)]
-
 #![allow(unused)]
-
 #![warn(clippy::let_and_return)]
 
 fn test() -> i32 {
@@ -42,5 +39,32 @@ fn test_nowarn_4() -> i32 {
     x
 }
 
-fn main() {
+fn test_nowarn_5(x: i16) -> u16 {
+    #[allow(clippy::cast_possible_truncation, clippy::cast_sign_loss)]
+    let x = x as u16;
+    x
+}
+
+// False positive example
+trait Decode {
+    fn decode<D: std::io::Read>(d: D) -> Result<Self, ()>
+    where
+        Self: Sized;
 }
+
+macro_rules! tuple_encode {
+    ($($x:ident),*) => (
+        impl<$($x: Decode),*> Decode for ($($x),*) {
+            #[inline]
+            #[allow(non_snake_case)]
+            fn decode<D: std::io::Read>(mut d: D) -> Result<Self, ()> {
+                // Shouldn't trigger lint
+                Ok(($({let $x = Decode::decode(&mut d)?; $x }),*))
+            }
+        }
+    );
+}
+
+tuple_encode!(T0, T1, T2, T3, T4, T5, T6, T7);
+
+fn main() {}