let f = HasChars;
s.extend(f.chars());
}
-
-fn clone_on_copy() {
- 42.clone();
-
- vec![1].clone(); // ok, not a Copy type
- Some(vec![1]).clone(); // ok, not a Copy type
- (&42).clone();
-}
-
-fn clone_on_ref_ptr() {
- let rc = Rc::new(true);
- let arc = Arc::new(true);
-
- let rcweak = Rc::downgrade(&rc);
- let arc_weak = Arc::downgrade(&arc);
-
- rc.clone();
- Rc::clone(&rc);
-
- arc.clone();
- Arc::clone(&arc);
-
- rcweak.clone();
- rc::Weak::clone(&rcweak);
-
- arc_weak.clone();
- sync::Weak::clone(&arc_weak);
-
-
-}
-
-fn clone_on_copy_generic<T: Copy>(t: T) {
- t.clone();
-
- Some(t).clone();
-}
-
-fn clone_on_double_ref() {
- let x = vec![1];
- let y = &&x;
- let z: &Vec<_> = y.clone();
-
- println!("{:p} {:p}",*y, z);
-}
-
-fn single_char_pattern() {
- let x = "foo";
- x.split("x");
- x.split("xx");
- x.split('x');
-
- let y = "x";
- x.split(y);
- // Not yet testing for multi-byte characters
- // Changing `r.len() == 1` to `r.chars().count() == 1` in `lint_single_char_pattern`
- // should have done this but produced an ICE
- //
- // We may not want to suggest changing these anyway
- // See: https://github.com/rust-lang-nursery/rust-clippy/issues/650#issuecomment-184328984
- x.split("ß");
- x.split("ℝ");
- x.split("💣");
- // Can't use this lint for unicode code points which don't fit in a char
- x.split("❤️");
- x.contains("x");
- x.starts_with("x");
- x.ends_with("x");
- x.find("x");
- x.rfind("x");
- x.rsplit("x");
- x.split_terminator("x");
- x.rsplit_terminator("x");
- x.splitn(0, "x");
- x.rsplitn(0, "x");
- x.matches("x");
- x.rmatches("x");
- x.match_indices("x");
- x.rmatch_indices("x");
- x.trim_left_matches("x");
- x.trim_right_matches("x");
-
- let h = HashSet::<String>::new();
- h.contains("X"); // should not warn
-}
-
-#[allow(result_unwrap_used)]
-fn temporary_cstring() {
- use std::ffi::CString;
-
- CString::new("foo").unwrap().as_ptr();
-}
-
-fn iter_clone_collect() {
- let v = [1,2,3,4,5];
- let v2 : Vec<isize> = v.iter().cloned().collect();
- let v3 : HashSet<isize> = v.iter().cloned().collect();
- let v4 : VecDeque<isize> = v.iter().cloned().collect();
-}