From 698f8c2f01ea549d77d7dc3338a12e04c11057b9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:02:58 +0200 Subject: Adding upstream version 1.64.0+dfsg1. Signed-off-by: Daniel Baumann --- src/tools/clippy/tests/ui/no_effect.rs | 143 +++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 src/tools/clippy/tests/ui/no_effect.rs (limited to 'src/tools/clippy/tests/ui/no_effect.rs') diff --git a/src/tools/clippy/tests/ui/no_effect.rs b/src/tools/clippy/tests/ui/no_effect.rs new file mode 100644 index 000000000..fdefb11ae --- /dev/null +++ b/src/tools/clippy/tests/ui/no_effect.rs @@ -0,0 +1,143 @@ +#![feature(box_syntax, fn_traits, unboxed_closures)] +#![warn(clippy::no_effect_underscore_binding)] +#![allow(dead_code)] +#![allow(path_statements)] +#![allow(clippy::deref_addrof)] +#![allow(clippy::redundant_field_names)] + +struct Unit; +struct Tuple(i32); +struct Struct { + field: i32, +} +enum Enum { + Tuple(i32), + Struct { field: i32 }, +} +struct DropUnit; +impl Drop for DropUnit { + fn drop(&mut self) {} +} +struct DropStruct { + field: i32, +} +impl Drop for DropStruct { + fn drop(&mut self) {} +} +struct DropTuple(i32); +impl Drop for DropTuple { + fn drop(&mut self) {} +} +enum DropEnum { + Tuple(i32), + Struct { field: i32 }, +} +impl Drop for DropEnum { + fn drop(&mut self) {} +} +struct FooString { + s: String, +} +union Union { + a: u8, + b: f64, +} + +fn get_number() -> i32 { + 0 +} +fn get_struct() -> Struct { + Struct { field: 0 } +} +fn get_drop_struct() -> DropStruct { + DropStruct { field: 0 } +} + +unsafe fn unsafe_fn() -> i32 { + 0 +} + +struct GreetStruct1; + +impl FnOnce<(&str,)> for GreetStruct1 { + type Output = (); + + extern "rust-call" fn call_once(self, (who,): (&str,)) -> Self::Output { + println!("hello {}", who); + } +} + +struct GreetStruct2(); + +impl FnOnce<(&str,)> for GreetStruct2 { + type Output = (); + + extern "rust-call" fn call_once(self, (who,): (&str,)) -> Self::Output { + println!("hello {}", who); + } +} + +struct GreetStruct3; + +impl FnOnce<(&str,)> for GreetStruct3 { + type Output = (); + + extern "rust-call" fn call_once(self, (who,): (&str,)) -> Self::Output { + println!("hello {}", who); + } +} + +fn main() { + let s = get_struct(); + let s2 = get_struct(); + + 0; + s2; + Unit; + Tuple(0); + Struct { field: 0 }; + Struct { ..s }; + Union { a: 0 }; + Enum::Tuple(0); + Enum::Struct { field: 0 }; + 5 + 6; + *&42; + &6; + (5, 6, 7); + box 42; + ..; + 5..; + ..5; + 5..6; + 5..=6; + [42, 55]; + [42, 55][1]; + (42, 55).1; + [42; 55]; + [42; 55][13]; + let mut x = 0; + || x += 5; + let s: String = "foo".into(); + FooString { s: s }; + let _unused = 1; + let _penguin = || println!("Some helpful closure"); + let _duck = Struct { field: 0 }; + let _cat = [2, 4, 6, 8][2]; + + #[allow(clippy::no_effect)] + 0; + + // Do not warn + get_number(); + unsafe { unsafe_fn() }; + let _used = get_struct(); + let _x = vec![1]; + DropUnit; + DropStruct { field: 0 }; + DropTuple(0); + DropEnum::Tuple(0); + DropEnum::Struct { field: 0 }; + GreetStruct1("world"); + GreetStruct2()("world"); + GreetStruct3 {}("world"); +} -- cgit v1.2.3