Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_assists/src/handlers/generate_getter.rs')
| -rw-r--r-- | crates/ide_assists/src/handlers/generate_getter.rs | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/crates/ide_assists/src/handlers/generate_getter.rs b/crates/ide_assists/src/handlers/generate_getter.rs index ba0bc7fdd9..81cf72dd71 100644 --- a/crates/ide_assists/src/handlers/generate_getter.rs +++ b/crates/ide_assists/src/handlers/generate_getter.rs @@ -1,3 +1,4 @@ +use ide_db::helpers::FamousDefs; use stdx::{format_to, to_lower_snake_case}; use syntax::ast::{self, AstNode, HasName, HasVisibility}; @@ -112,16 +113,12 @@ pub(crate) fn generate_getter_impl( let vis = strukt.visibility().map_or(String::new(), |v| format!("{} ", v)); let (ty, body) = if mutable { - ( - format!("&mut {}", field_ty.to_string()), - format!("&mut self.{}", field_name.to_string()), - ) + (format!("&mut {}", field_ty), format!("&mut self.{}", field_name)) } else { + let famous_defs = &FamousDefs(&ctx.sema, ctx.sema.scope(field_ty.syntax()).krate()); ctx.sema .resolve_type(&field_ty) - .and_then(|ty| { - convert_reference_type(ty, ctx, ctx.sema.scope(field_ty.syntax()).krate()) - }) + .and_then(|ty| convert_reference_type(ty, ctx.db(), famous_defs)) .map(|conversion| { cov_mark::hit!(convert_reference_type); ( |