]> git.lizzy.rs Git - rust.git/blobdiff - tests/ui/methods.rs
move cstring tests
[rust.git] / tests / ui / methods.rs
index 33c507ed82a68e35b617d0a4274744682d0bf8fc..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)]
@@ -11,6 +11,8 @@
 use std::collections::VecDeque;
 use std::ops::Mul;
 use std::iter::FromIterator;
+use std::rc::{self, Rc};
+use std::sync::{self, Arc};
 
 struct T;
 
@@ -106,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
 
@@ -420,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");
@@ -447,79 +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_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/Manishearth/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();
-}