Auto merge of #54080 - PramodBisht:issue/53692, r=estebank

Addressed #53692

@sunjay @estebank  @csmoe hopefully this answer #53692
Please let me know if you have any suggestion
This commit is contained in:
bors 2018-09-14 13:06:23 +00:00
commit 85da24527a
3 changed files with 68 additions and 1 deletions

View file

@ -0,0 +1,24 @@
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn main() {
let items = vec![1, 2, 3];
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();
}

View file

@ -0,0 +1,27 @@
error[E0308]: mismatched types
--> $DIR/issue-53692.rs:13:37
|
LL | let items_clone: Vec<i32> = ref_items.clone();
| ^^^^^^^^^^^^^^^^^
| |
| expected struct `std::vec::Vec`, found &[i32]
| help: try using a conversion method: `ref_items.to_vec()`
|
= note: expected type `std::vec::Vec<i32>`
found type `&[i32]`
error[E0308]: mismatched types
--> $DIR/issue-53692.rs:19:30
|
LL | let string: String = s.clone();
| ^^^^^^^^^
| |
| expected struct `std::string::String`, found &str
| help: try using a conversion method: `s.to_string()`
|
= note: expected type `std::string::String`
found type `&str`
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0308`.