about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDorian Scheidt <dorian.scheidt@gmail.com>2022-08-18 18:32:35 -0500
committerDorian Scheidt <dorian.scheidt@gmail.com>2022-08-18 18:32:35 -0500
commitd8e7419c647ff1cd24263fb8e6fbfd609d17d05b (patch)
treece13082ae319a411f55ed492598b30a534220d59
parent2e4a4f1a9c1cba63ec44562f0ab0d5b5783ad561 (diff)
downloadrust-d8e7419c647ff1cd24263fb8e6fbfd609d17d05b.tar.gz
rust-d8e7419c647ff1cd24263fb8e6fbfd609d17d05b.zip
Generate and use TargetInfo::new
-rw-r--r--crates/ide-assists/src/handlers/generate_function.rs16
1 files changed, 14 insertions, 2 deletions
diff --git a/crates/ide-assists/src/handlers/generate_function.rs b/crates/ide-assists/src/handlers/generate_function.rs
index cf28f49e034..892b166a2ce 100644
--- a/crates/ide-assists/src/handlers/generate_function.rs
+++ b/crates/ide-assists/src/handlers/generate_function.rs
@@ -86,6 +86,18 @@ struct TargetInfo {
     insert_offset: TextSize,
 }
 
+impl TargetInfo {
+    fn new(
+        target_module: Option<Module>,
+        adt_name: Option<hir::Name>,
+        target: GeneratedFunctionTarget,
+        file: FileId,
+        insert_offset: TextSize,
+    ) -> Self {
+        Self { target_module, adt_name, target, file, insert_offset }
+    }
+}
+
 fn fn_target_info(
     ctx: &AssistContext<'_>,
     path: ast::Path,
@@ -123,7 +135,7 @@ fn fn_target_info(
             get_fn_target(ctx, &target_module, call.clone())?
         }
     };
-    Some(TargetInfo { target_module, adt_name, target, file, insert_offset })
+    Some(TargetInfo::new(target_module, adt_name, target, file, insert_offset))
 }
 
 fn gen_method(acc: &mut Assists, ctx: &AssistContext<'_>) -> Option<()> {
@@ -427,7 +439,7 @@ fn assoc_fn_target_info(
     let (impl_, file) = get_adt_source(ctx, &adt, fn_name)?;
     let (target, insert_offset) = get_method_target(ctx, &module, &impl_)?;
     let adt_name = if impl_.is_none() { Some(adt.name(ctx.sema.db)) } else { None };
-    Some(TargetInfo { target_module, adt_name, target, file, insert_offset })
+    Some(TargetInfo::new(target_module, adt_name, target, file, insert_offset))
 }
 
 fn get_insert_offset(target: &GeneratedFunctionTarget) -> TextSize {