]> git.lizzy.rs Git - rust.git/blobdiff - tests/ui/needless_pass_by_value.rs
Auto merge of #9684 - kraktus:ref_option_ref, r=xFrednet
[rust.git] / tests / ui / needless_pass_by_value.rs
index ec9df9fb3d3866b2cc089173e379ec5f8dfecbde..d79ad86b1948caa3eff6b7516b2b9f4ec6d2a453 100644 (file)
@@ -1,23 +1,17 @@
-// Copyright 2014-2018 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 #![warn(clippy::needless_pass_by_value)]
+#![allow(dead_code)]
 #![allow(
-    dead_code,
-    clippy::single_match,
+    clippy::option_option,
+    clippy::redundant_clone,
     clippy::redundant_pattern_matching,
-    clippy::many_single_char_names,
-    clippy::option_option
+    clippy::single_match,
+    clippy::uninlined_format_args
 )]
 
 use std::borrow::Borrow;
+use std::collections::HashSet;
 use std::convert::AsRef;
+use std::mem::MaybeUninit;
 
 // `v` should be warned
 // `w`, `x` and `y` are allowed (moved or mutated)
@@ -103,7 +97,7 @@ fn foo(
         s.len() + t.capacity()
     }
 
-    fn bar(_t: T // Ok, since `&T: Serialize` too
+    fn bar(_t: T, // Ok, since `&T: Serialize` too
     ) {
     }
 
@@ -118,11 +112,11 @@ fn visit_string(s: String) {
 }
 
 // shouldn't warn on extern funcs
-extern "C" fn ext(x: String) -> usize {
-    x.len()
+extern "C" fn ext(x: MaybeUninit<usize>) -> usize {
+    unsafe { x.assume_init() }
 }
 
-// whitelist RangeArgument
+// exempt RangeArgument
 fn range<T: ::std::ops::RangeBounds<usize>>(range: T) {
     let _ = range.start_bound();
 }
@@ -154,4 +148,14 @@ trait Club<'a, A> {}
 impl<T> Club<'static, T> for T {}
 fn more_fun(_item: impl Club<'static, i32>) {}
 
-fn main() {}
+fn is_sync<T>(_: T)
+where
+    T: Sync,
+{
+}
+
+fn main() {
+    // This should not cause an ICE either
+    // https://github.com/rust-lang/rust-clippy/issues/3144
+    is_sync(HashSet::<usize>::new());
+}