-// 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)
s.len() + t.capacity()
}
- fn bar(_t: T // Ok, since `&T: Serialize` too
+ fn bar(_t: T, // Ok, since `&T: Serialize` too
) {
}
}
// 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();
}
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());
+}