]> git.lizzy.rs Git - rust.git/blobdiff - tests/ui/single_char_pattern.rs
Add lint `suspicious_splitn`
[rust.git] / tests / ui / single_char_pattern.rs
index 577a0e270906d674f35532ad8834d9e22b3ddef9..e662bf34be2ceffb5ba409fe03613bbdb3710494 100644 (file)
@@ -1,3 +1,7 @@
+// run-rustfix
+
+#![allow(unused_must_use)]
+
 use std::collections::HashSet;
 
 fn main() {
@@ -8,12 +12,6 @@ fn main() {
 
     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("💣");
@@ -27,20 +25,35 @@ fn main() {
     x.rsplit("x");
     x.split_terminator("x");
     x.rsplit_terminator("x");
-    x.splitn(0, "x");
-    x.rsplitn(0, "x");
+    x.splitn(2, "x");
+    x.rsplitn(2, "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");
+    x.trim_start_matches("x");
+    x.trim_end_matches("x");
+    x.strip_prefix("x");
+    x.strip_suffix("x");
     // Make sure we escape characters correctly.
     x.split("\n");
+    x.split("'");
+    x.split("\'");
 
     let h = HashSet::<String>::new();
     h.contains("X"); // should not warn
 
     x.replace(";", ",").split(","); // issue #2978
     x.starts_with("\x03"); // issue #2996
+
+    // Issue #3204
+    const S: &str = "#";
+    x.find(S);
+
+    // Raw string
+    x.split(r"a");
+    x.split(r#"a"#);
+    x.split(r###"a"###);
+    x.split(r###"'"###);
+    x.split(r###"#"###);
 }