]> git.lizzy.rs Git - rust.git/blobdiff - tests/ui/methods.rs
move cstring tests
[rust.git] / tests / ui / methods.rs
index 3bbaff29c988b4ed0fc762c2516cfda4dd37095a..a422cffafaba93985970e377588eef91860035c9 100644 (file)
@@ -1,6 +1,6 @@
-#![feature(plugin)]
+
 #![feature(const_fn)]
-#![plugin(clippy)]
+
 
 #![warn(clippy, clippy_pedantic)]
 #![allow(blacklisted_name, unused, print_stdout, non_ascii_literal, new_without_default, new_without_default_derive, missing_docs_in_private_items)]
@@ -108,6 +108,16 @@ fn option_methods() {
                .unwrap_or({
                     0
                 });
+    // single line `map(f).unwrap_or(None)` case
+    let _ = opt.map(|x| Some(x + 1)).unwrap_or(None);
+    // multiline `map(f).unwrap_or(None)` cases
+    let _ = opt.map(|x| {
+        Some(x + 1)
+    }
+    ).unwrap_or(None);
+    let _ = opt
+        .map(|x| Some(x + 1))
+        .unwrap_or(None);
     // macro case
     let _ = opt_map!(opt, |x| x + 1).unwrap_or(0); // should not lint
 
@@ -422,12 +432,6 @@ struct MyErrorWithParam<T> {
     x: T
 }
 
-#[allow(unnecessary_operation)]
-fn starts_with() {
-    "".chars().next() == Some(' ');
-    Some(' ') != "".chars().next();
-}
-
 fn str_extend_chars() {
     let abc = "abc";
     let def = String::from("def");
@@ -449,101 +453,3 @@ fn str_extend_chars() {
     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();
-}