| struct A(String); | |
| struct C(D); | |
| fn suggest_remove_deref() { | |
| let a = &A("".to_string()); | |
| let b = *a; | |
| //~^ ERROR | |
| } | |
| fn suggest_borrow() { | |
| let a = [A("".to_string())]; | |
| let b = a[0]; | |
| //~^ ERROR | |
| } | |
| fn suggest_borrow2() { | |
| let mut a = A("".to_string()); | |
| let r = &&mut a; | |
| let s = **r; | |
| //~^ ERROR | |
| } | |
| fn suggest_borrow3() { | |
| use std::rc::Rc; | |
| let mut a = A("".to_string()); | |
| let r = Rc::new(a); | |
| let s = *r; | |
| //~^ ERROR | |
| } | |
| fn suggest_borrow4() { | |
| let a = [A("".to_string())][0]; | |
| //~^ ERROR | |
| } | |
| fn suggest_borrow5() { | |
| let a = &A("".to_string()); | |
| let A(s) = *a; | |
| //~^ ERROR | |
| } | |
| fn suggest_ref() { | |
| let c = C(D(String::new())); | |
| let C(D(s)) = c; | |
| //~^ ERROR | |
| } | |
| fn suggest_nothing() { | |
| let a = &A("".to_string()); | |
| let b; | |
| b = *a; | |
| //~^ ERROR | |
| } | |
| enum B { | |
| V(String), | |
| U(D), | |
| } | |
| struct D(String); | |
| impl Drop for D { | |
| fn drop(&mut self) {} | |
| } | |
| struct F(String, String); | |
| impl Drop for F { | |
| fn drop(&mut self) {} | |
| } | |
| fn probably_suggest_borrow() { | |
| let x = [B::V(String::new())]; | |
| match x[0] { | |
| //~^ ERROR | |
| B::U(d) => (), | |
| B::V(s) => (), | |
| } | |
| } | |
| fn have_to_suggest_ref() { | |
| let x = B::V(String::new()); | |
| match x { | |
| //~^ ERROR | |
| B::V(s) => drop(s), | |
| B::U(D(s)) => (), | |
| }; | |
| } | |
| fn two_separate_errors() { | |
| let x = (D(String::new()), &String::new()); | |
| match x { | |
| //~^ ERROR | |
| //~^^ ERROR | |
| (D(s), &t) => (), | |
| _ => (), | |
| } | |
| } | |
| fn have_to_suggest_double_ref() { | |
| let x = F(String::new(), String::new()); | |
| match x { | |
| //~^ ERROR | |
| F(s, mut t) => (), | |
| _ => (), | |
| } | |
| } | |
| fn double_binding(x: &Result<String, String>) { | |
| match *x { | |
| //~^ ERROR | |
| Ok(s) | Err(s) => (), | |
| } | |
| } | |
| fn main() { | |
| } |