clippy::borrowed_box,
clippy::needless_pass_by_value,
clippy::unused_unit,
- clippy::redundant_clone
+ clippy::redundant_clone,
+ clippy::match_single_binding
)]
#![warn(clippy::boxed_local)]
let x = box A;
match &x {
// not moved
- ref y => (),
+ y => (),
}
}
let x = box [1; 10000];
match &x {
// not moved
- ref y => (),
+ y => (),
}
}
};
}
}
+
+/// Issue #5542
+///
+/// This shouldn't warn for `boxed_local` as it is intended to called from non-Rust code.
+pub extern "C" fn do_not_warn_me(_c_pointer: Box<String>) -> () {}
+
+#[rustfmt::skip] // Forces rustfmt to not add ABI
+pub extern fn do_not_warn_me_no_abi(_c_pointer: Box<String>) -> () {}
+
+// Issue #4804 - default implementation in trait
+mod issue4804 {
+ trait DefaultTraitImplTest {
+ // don't warn on `self`
+ fn default_impl(self: Box<Self>) -> u32 {
+ 5
+ }
+
+ // warn on `x: Box<u32>`
+ fn default_impl_x(self: Box<Self>, x: Box<u32>) -> u32 {
+ 4
+ }
+ }
+
+ trait WarnTrait {
+ // warn on `x: Box<u32>`
+ fn foo(x: Box<u32>) {}
+ }
+}