Handle more cases of "values to suggest" given a type
Add handling for `String`, `Box`, `Option` and `Result`.
This commit is contained in:
parent
e17388b809
commit
1eda0565fa
6 changed files with 38 additions and 13 deletions
|
@ -490,6 +490,18 @@ pub fn ty_kind_suggestion<'tcx>(ty: Ty<'tcx>, tcx: TyCtxt<'tcx>) -> Option<Strin
|
|||
ty::Adt(def, _) if Some(def.did()) == tcx.get_diagnostic_item(sym::Vec) => {
|
||||
"vec![]".to_string()
|
||||
}
|
||||
ty::Adt(def, _) if Some(def.did()) == tcx.get_diagnostic_item(sym::String) => {
|
||||
"String::new()".to_string()
|
||||
}
|
||||
ty::Adt(def, args) if def.is_box() => {
|
||||
format!("Box::new({})", ty_kind_suggestion(args[0].expect_ty(), tcx)?)
|
||||
}
|
||||
ty::Adt(def, _) if Some(def.did()) == tcx.get_diagnostic_item(sym::Option) => {
|
||||
"None".to_string()
|
||||
}
|
||||
ty::Adt(def, args) if Some(def.did()) == tcx.get_diagnostic_item(sym::Result) => {
|
||||
format!("Ok({})", ty_kind_suggestion(args[0].expect_ty(), tcx)?)
|
||||
}
|
||||
ty::Adt(_, _) if implements_default(ty) => "Default::default()".to_string(),
|
||||
ty::Ref(_, ty, mutability) => {
|
||||
if let (ty::Str, Mutability::Not) = (ty.kind(), mutability) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue