| // Check that `!Send` types fail early. |
| |
| /** ```compile_fail,E0277 |
| |
| use rayon::prelude::*; |
| use std::ptr::null; |
| |
| #[derive(Copy, Clone)] |
| struct NoSend(*const ()); |
| |
| unsafe impl Sync for NoSend {} |
| |
| fn main() { |
| let x = Some(NoSend(null())); |
| |
| x.par_iter() |
| .map(|&x| x) //~ ERROR |
| .count(); //~ ERROR |
| } |
| |
| ``` */ |
| mod map {} |
| |
| /** ```compile_fail,E0277 |
| |
| use rayon::prelude::*; |
| use std::ptr::null; |
| |
| #[derive(Copy, Clone)] |
| struct NoSend(*const ()); |
| |
| unsafe impl Sync for NoSend {} |
| |
| fn main() { |
| let x = Some(NoSend(null())); |
| |
| x.par_iter() |
| .filter_map(|&x| Some(x)) //~ ERROR |
| .count(); //~ ERROR |
| } |
| |
| ``` */ |
| mod filter_map {} |
| |
| /** ```compile_fail,E0277 |
| |
| use rayon::prelude::*; |
| use std::ptr::null; |
| |
| #[derive(Copy, Clone)] |
| struct NoSend(*const ()); |
| |
| unsafe impl Sync for NoSend {} |
| |
| fn main() { |
| let x = Some(NoSend(null())); |
| |
| x.par_iter() |
| .cloned() //~ ERROR |
| .count(); //~ ERROR |
| } |
| |
| ``` */ |
| mod cloned {} |