about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPramod Bisht <pramodpsb@outlook.com>2018-09-09 13:43:41 +0000
committerPramod Bisht <pramodpsb@outlook.com>2018-09-09 13:43:41 +0000
commitaf09bf9293ed89b93662bad02006bcabde587a16 (patch)
tree2168a7d668a0f2fc536126ed58ff8d153dc7a97c
parenta673203ec83746bc0bc7e4579fa97519a66f570e (diff)
downloadrust-af09bf9293ed89b93662bad02006bcabde587a16.tar.gz
rust-af09bf9293ed89b93662bad02006bcabde587a16.zip
53692: Addressed Estebank's Nits
-rw-r--r--src/librustc_typeck/check/mod.rs12
-rw-r--r--src/test/ui/issue-53692.rs7
-rw-r--r--src/test/ui/issue-53692.stderr2
3 files changed, 15 insertions, 6 deletions
diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs
index 8f3300fac18..997fdb0df61 100644
--- a/src/librustc_typeck/check/mod.rs
+++ b/src/librustc_typeck/check/mod.rs
@@ -4726,13 +4726,15 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
                         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);
diff --git a/src/test/ui/issue-53692.rs b/src/test/ui/issue-53692.rs
index 314362cf112..0b6cc36fa52 100644
--- a/src/test/ui/issue-53692.rs
+++ b/src/test/ui/issue-53692.rs
@@ -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();
 }
diff --git a/src/test/ui/issue-53692.stderr b/src/test/ui/issue-53692.stderr
index 1dc7621f1e4..9cd8a536155 100644
--- a/src/test/ui/issue-53692.stderr
+++ b/src/test/ui/issue-53692.stderr
@@ -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();
    |                              ^^^^^^^^^