]> git.lizzy.rs Git - rust.git/commitdiff
53692: Addressed Estebank's Nits
authorPramod Bisht <pramodpsb@outlook.com>
Sun, 9 Sep 2018 13:43:41 +0000 (13:43 +0000)
committerPramod Bisht <pramodpsb@outlook.com>
Sun, 9 Sep 2018 13:43:41 +0000 (13:43 +0000)
src/librustc_typeck/check/mod.rs
src/test/ui/issue-53692.rs
src/test/ui/issue-53692.stderr

index 8f3300fac188be5c5435cfd041446915134a4f61..997fdb0df616bf1d1490d93f05bb66267de7cc37 100644 (file)
@@ -4726,13 +4726,15 @@ pub fn suggest_ref_or_into(
                         if receiver.ends_with(&method_call) {
                             None  // do not suggest code that is already there (#53348)
                         } else {
-                            // methods defined will be overwrite `.clone()`
-                            // if suggesion is present in `method_call_list` (#53692)
+                            /*
+                            methods defined in `method_call_list` will overwrite
+                            `.clone()` in copy of `receiver`
+                            */
                             let method_call_list = [".to_vec()", ".to_string()"];
-                            if receiver.ends_with("clone()")
+                            if receiver.ends_with(".clone()")
                                     && method_call_list.contains(&method_call.as_str()){
-                                // needed to clone receiver, because we don't want other
-                                // suggestion to get affect because of that
+                                // created copy of `receiver` because we don't want other
+                                // suggestion to get affected
                                 let mut new_receiver = receiver.clone();
                                 let max_len = new_receiver.rfind(".").unwrap();
                                 new_receiver.truncate(max_len);
index 314362cf1127b360a527e6b41d11e884def625bd..0b6cc36fa52ef77025931c738f181a7ccb3cba5a 100644 (file)
@@ -12,6 +12,13 @@ fn main() {
         let ref_items: &[i32] = &items;
         let items_clone: Vec<i32> = ref_items.clone();
 
+        // in that case no suggestion will be triggered
+        let items_clone_2:Vec<i32> = items.clone();
+
         let s = "hi";
         let string: String = s.clone();
+
+        // in that case no suggestion will be triggered
+        let s2 = "hi";
+        let string_2: String = s2.to_string();
 }
index 1dc7621f1e4e70c997d2f5fc1cfb259a65a91886..9cd8a53615529b2fb358f57d4b60f61ca4773f07 100644 (file)
@@ -11,7 +11,7 @@ LL |         let items_clone: Vec<i32> = ref_items.clone();
               found type `&[i32]`
 
 error[E0308]: mismatched types
-  --> $DIR/issue-53692.rs:16:30
+  --> $DIR/issue-53692.rs:19:30
    |
 LL |         let string: String = s.clone();
    |                              ^^^^^^^^^