diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
commit | 698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch) | |
tree | 173a775858bd501c378080a10dca74132f05bc50 /src/tools/clippy/tests/ui-toml/strict_non_send_fields_in_send_ty/test.rs | |
parent | Initial commit. (diff) | |
download | rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip |
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/tools/clippy/tests/ui-toml/strict_non_send_fields_in_send_ty/test.rs')
-rw-r--r-- | src/tools/clippy/tests/ui-toml/strict_non_send_fields_in_send_ty/test.rs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/tools/clippy/tests/ui-toml/strict_non_send_fields_in_send_ty/test.rs b/src/tools/clippy/tests/ui-toml/strict_non_send_fields_in_send_ty/test.rs new file mode 100644 index 000000000..90c2439dc --- /dev/null +++ b/src/tools/clippy/tests/ui-toml/strict_non_send_fields_in_send_ty/test.rs @@ -0,0 +1,43 @@ +#![warn(clippy::non_send_fields_in_send_ty)] +#![feature(extern_types)] + +use std::rc::Rc; + +// Basic tests should not be affected +pub struct NoGeneric { + rc_is_not_send: Rc<String>, +} + +unsafe impl Send for NoGeneric {} + +pub struct MultiField<T> { + field1: T, + field2: T, + field3: T, +} + +unsafe impl<T> Send for MultiField<T> {} + +pub enum MyOption<T> { + MySome(T), + MyNone, +} + +unsafe impl<T> Send for MyOption<T> {} + +// All fields are disallowed when raw pointer heuristic is off +extern "C" { + type NonSend; +} + +pub struct HeuristicTest { + field1: Vec<*const NonSend>, + field2: [*const NonSend; 3], + field3: (*const NonSend, *const NonSend, *const NonSend), + field4: (*const NonSend, Rc<u8>), + field5: Vec<Vec<*const NonSend>>, +} + +unsafe impl Send for HeuristicTest {} + +fn main() {} |