Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-assists/src/handlers/generate_function.rs')
| -rw-r--r-- | crates/ide-assists/src/handlers/generate_function.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/crates/ide-assists/src/handlers/generate_function.rs b/crates/ide-assists/src/handlers/generate_function.rs index 7af2a2e1e6..29bd8cf0d1 100644 --- a/crates/ide-assists/src/handlers/generate_function.rs +++ b/crates/ide-assists/src/handlers/generate_function.rs @@ -2,6 +2,7 @@ use hir::{ Adt, AsAssocItem, HasSource, HirDisplay, HirFileIdExt, Module, PathResolution, Semantics, StructKind, Type, TypeInfo, }; +use ide_db::base_db::salsa::AsDynDatabase; use ide_db::{ defs::{Definition, NameRefClass}, famous_defs::FamousDefs, @@ -205,7 +206,11 @@ fn get_adt_source( fn_name: &str, ) -> Option<(Option<ast::Impl>, FileId)> { let range = adt.source(ctx.sema.db)?.syntax().original_file_range_rooted(ctx.sema.db); - let file = ctx.sema.parse(range.file_id); + + let editioned_file_id = + ide_db::base_db::EditionedFileId::new(ctx.sema.db.as_dyn_database(), range.file_id); + + let file = ctx.sema.parse(editioned_file_id); let adt_source = ctx.sema.find_node_at_offset_with_macros(file.syntax(), range.range.start())?; find_struct_impl(ctx, &adt_source, &[fn_name.to_owned()]) |