Skip to content

Commit 30c2e71

Browse files
bors[bot]lnicola
andauthored
Merge #5156
5156: Remove db from AssistsContext r=matklad a=lnicola Co-authored-by: Laurențiu Nicola <[email protected]>
2 parents 98ae447 + 331e6d8 commit 30c2e71

File tree

11 files changed

+37
-35
lines changed

11 files changed

+37
-35
lines changed

crates/ra_assists/src/assist_context.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ use crate::{
5555
pub(crate) struct AssistContext<'a> {
5656
pub(crate) config: &'a AssistConfig,
5757
pub(crate) sema: Semantics<'a, RootDatabase>,
58-
pub(crate) db: &'a RootDatabase,
5958
pub(crate) frange: FileRange,
6059
source_file: SourceFile,
6160
}
@@ -67,8 +66,11 @@ impl<'a> AssistContext<'a> {
6766
frange: FileRange,
6867
) -> AssistContext<'a> {
6968
let source_file = sema.parse(frange.file_id);
70-
let db = sema.db;
71-
AssistContext { config, sema, db, frange, source_file }
69+
AssistContext { config, sema, frange, source_file }
70+
}
71+
72+
pub(crate) fn db(&self) -> &RootDatabase {
73+
self.sema.db
7274
}
7375

7476
// NB, this ignores active selection.

crates/ra_assists/src/handlers/add_explicit_type.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ pub(crate) fn add_explicit_type(acc: &mut Assists, ctx: &AssistContext) -> Optio
5757
return None;
5858
}
5959

60-
let inferred_type = ty.display_source_code(ctx.db, module.into()).ok()?;
60+
let inferred_type = ty.display_source_code(ctx.db(), module.into()).ok()?;
6161
acc.add(
6262
AssistId("add_explicit_type"),
6363
format!("Insert explicit type `{}`", inferred_type),

crates/ra_assists/src/handlers/add_function.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ impl FunctionBuilder {
117117
let mut file = ctx.frange.file_id;
118118
let target = match &target_module {
119119
Some(target_module) => {
120-
let module_source = target_module.definition_source(ctx.db);
120+
let module_source = target_module.definition_source(ctx.db());
121121
let (in_file, target) = next_space_for_fn_in_module(ctx.sema.db, &module_source)?;
122122
file = in_file;
123123
target
@@ -269,7 +269,7 @@ fn fn_arg_type(
269269
return None;
270270
}
271271

272-
if let Ok(rendered) = ty.display_source_code(ctx.db, target_module.into()) {
272+
if let Ok(rendered) = ty.display_source_code(ctx.db(), target_module.into()) {
273273
Some(rendered)
274274
} else {
275275
None

crates/ra_assists/src/handlers/add_missing_impl_members.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,9 @@ fn add_missing_impl_members_inner(
128128
let missing_items = get_missing_assoc_items(&ctx.sema, &impl_def)
129129
.iter()
130130
.map(|i| match i {
131-
hir::AssocItem::Function(i) => ast::AssocItem::FnDef(i.source(ctx.db).value),
132-
hir::AssocItem::TypeAlias(i) => ast::AssocItem::TypeAliasDef(i.source(ctx.db).value),
133-
hir::AssocItem::Const(i) => ast::AssocItem::ConstDef(i.source(ctx.db).value),
131+
hir::AssocItem::Function(i) => ast::AssocItem::FnDef(i.source(ctx.db()).value),
132+
hir::AssocItem::TypeAlias(i) => ast::AssocItem::TypeAliasDef(i.source(ctx.db()).value),
133+
hir::AssocItem::Const(i) => ast::AssocItem::ConstDef(i.source(ctx.db()).value),
134134
})
135135
.filter(|t| def_name(&t).is_some())
136136
.filter(|t| match t {

crates/ra_assists/src/handlers/add_new.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ fn generate_impl_text(strukt: &ast::StructDef, code: &str) -> String {
122122
// FIXME: change the new fn checking to a more semantic approach when that's more
123123
// viable (e.g. we process proc macros, etc)
124124
fn find_struct_impl(ctx: &AssistContext, strukt: &ast::StructDef) -> Option<Option<ast::ImplDef>> {
125-
let db = ctx.db;
125+
let db = ctx.db();
126126
let module = strukt.syntax().ancestors().find(|node| {
127127
ast::Module::can_cast(node.kind()) || ast::SourceFile::can_cast(node.kind())
128128
})?;

crates/ra_assists/src/handlers/auto_import.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ use crate::{utils::insert_use_statement, AssistContext, AssistId, Assists, Group
3636
// ```
3737
pub(crate) fn auto_import(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
3838
let auto_import_assets = AutoImportAssets::new(&ctx)?;
39-
let proposed_imports = auto_import_assets.search_for_imports(ctx.db);
39+
let proposed_imports = auto_import_assets.search_for_imports(ctx.db());
4040
if proposed_imports.is_empty() {
4141
return None;
4242
}

crates/ra_assists/src/handlers/extract_struct_from_enum_variant.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,23 +37,23 @@ pub(crate) fn extract_struct_from_enum_variant(
3737
};
3838
let variant_name = variant.name()?.to_string();
3939
let variant_hir = ctx.sema.to_def(&variant)?;
40-
if existing_struct_def(ctx.db, &variant_name, &variant_hir) {
40+
if existing_struct_def(ctx.db(), &variant_name, &variant_hir) {
4141
return None;
4242
}
4343
let enum_ast = variant.parent_enum();
4444
let visibility = enum_ast.visibility();
4545
let enum_hir = ctx.sema.to_def(&enum_ast)?;
46-
let variant_hir_name = variant_hir.name(ctx.db);
46+
let variant_hir_name = variant_hir.name(ctx.db());
4747
let enum_module_def = ModuleDef::from(enum_hir);
48-
let current_module = enum_hir.module(ctx.db);
48+
let current_module = enum_hir.module(ctx.db());
4949
let target = variant.syntax().text_range();
5050
acc.add(
5151
AssistId("extract_struct_from_enum_variant"),
5252
"Extract struct from enum variant",
5353
target,
5454
|builder| {
5555
let definition = Definition::ModuleDef(ModuleDef::EnumVariant(variant_hir));
56-
let res = definition.find_usages(&ctx.db, None);
56+
let res = definition.find_usages(&ctx.db(), None);
5757
let start_offset = variant.parent_enum().syntax().text_range().start();
5858
let mut visited_modules_set = FxHashSet::default();
5959
visited_modules_set.insert(current_module);
@@ -101,7 +101,7 @@ fn insert_import(
101101
enum_module_def: &ModuleDef,
102102
variant_hir_name: &Name,
103103
) -> Option<()> {
104-
let db = ctx.db;
104+
let db = ctx.db();
105105
let mod_path = module.find_use_path(db, enum_module_def.clone());
106106
if let Some(mut mod_path) = mod_path {
107107
mod_path.segments.pop();

crates/ra_assists/src/handlers/fill_match_arms.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,11 @@ pub(crate) fn fill_match_arms(acc: &mut Assists, ctx: &AssistContext) -> Option<
5151
let module = ctx.sema.scope(expr.syntax()).module()?;
5252

5353
let missing_arms: Vec<MatchArm> = if let Some(enum_def) = resolve_enum_def(&ctx.sema, &expr) {
54-
let variants = enum_def.variants(ctx.db);
54+
let variants = enum_def.variants(ctx.db());
5555

5656
let mut variants = variants
5757
.into_iter()
58-
.filter_map(|variant| build_pat(ctx.db, module, variant))
58+
.filter_map(|variant| build_pat(ctx.db(), module, variant))
5959
.filter(|variant_pat| is_variant_missing(&mut arms, variant_pat))
6060
.map(|pat| make::match_arm(iter::once(pat), make::expr_empty_block()))
6161
.collect::<Vec<_>>();
@@ -84,11 +84,11 @@ pub(crate) fn fill_match_arms(acc: &mut Assists, ctx: &AssistContext) -> Option<
8484
// where each tuple represents a proposed match arm.
8585
enum_defs
8686
.into_iter()
87-
.map(|enum_def| enum_def.variants(ctx.db))
87+
.map(|enum_def| enum_def.variants(ctx.db()))
8888
.multi_cartesian_product()
8989
.map(|variants| {
9090
let patterns =
91-
variants.into_iter().filter_map(|variant| build_pat(ctx.db, module, variant));
91+
variants.into_iter().filter_map(|variant| build_pat(ctx.db(), module, variant));
9292
ast::Pat::from(make::tuple_pat(patterns))
9393
})
9494
.filter(|variant_pat| is_variant_missing(&mut arms, variant_pat))

crates/ra_assists/src/handlers/fix_visibility.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,14 @@ fn add_vis_to_referenced_module_def(acc: &mut Assists, ctx: &AssistContext) -> O
4141
};
4242

4343
let current_module = ctx.sema.scope(&path.syntax()).module()?;
44-
let target_module = def.module(ctx.db)?;
44+
let target_module = def.module(ctx.db())?;
4545

46-
let vis = target_module.visibility_of(ctx.db, &def)?;
47-
if vis.is_visible_from(ctx.db, current_module.into()) {
46+
let vis = target_module.visibility_of(ctx.db(), &def)?;
47+
if vis.is_visible_from(ctx.db(), current_module.into()) {
4848
return None;
4949
};
5050

51-
let (offset, target, target_file, target_name) = target_data_for_def(ctx.db, def)?;
51+
let (offset, target, target_file, target_name) = target_data_for_def(ctx.db(), def)?;
5252

5353
let missing_visibility =
5454
if current_module.krate() == target_module.krate() { "pub(crate)" } else { "pub" };
@@ -72,16 +72,16 @@ fn add_vis_to_referenced_record_field(acc: &mut Assists, ctx: &AssistContext) ->
7272
let (record_field_def, _) = ctx.sema.resolve_record_field(&record_field)?;
7373

7474
let current_module = ctx.sema.scope(record_field.syntax()).module()?;
75-
let visibility = record_field_def.visibility(ctx.db);
76-
if visibility.is_visible_from(ctx.db, current_module.into()) {
75+
let visibility = record_field_def.visibility(ctx.db());
76+
if visibility.is_visible_from(ctx.db(), current_module.into()) {
7777
return None;
7878
}
7979

80-
let parent = record_field_def.parent_def(ctx.db);
81-
let parent_name = parent.name(ctx.db);
82-
let target_module = parent.module(ctx.db);
80+
let parent = record_field_def.parent_def(ctx.db());
81+
let parent_name = parent.name(ctx.db());
82+
let target_module = parent.module(ctx.db());
8383

84-
let in_file_source = record_field_def.source(ctx.db);
84+
let in_file_source = record_field_def.source(ctx.db());
8585
let (offset, target) = match in_file_source.value {
8686
hir::FieldSource::Named(it) => {
8787
let s = it.syntax();
@@ -95,9 +95,9 @@ fn add_vis_to_referenced_record_field(acc: &mut Assists, ctx: &AssistContext) ->
9595

9696
let missing_visibility =
9797
if current_module.krate() == target_module.krate() { "pub(crate)" } else { "pub" };
98-
let target_file = in_file_source.file_id.original_file(ctx.db);
98+
let target_file = in_file_source.file_id.original_file(ctx.db());
9999

100-
let target_name = record_field_def.name(ctx.db);
100+
let target_name = record_field_def.name(ctx.db());
101101
let assist_label =
102102
format!("Change visibility of {}.{} to {}", parent_name, target_name, missing_visibility);
103103

crates/ra_assists/src/handlers/inline_local_variable.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ pub(crate) fn inline_local_variable(acc: &mut Assists, ctx: &AssistContext) -> O
4444

4545
let def = ctx.sema.to_def(&bind_pat)?;
4646
let def = Definition::Local(def);
47-
let refs = def.find_usages(ctx.db, None);
47+
let refs = def.find_usages(ctx.db(), None);
4848
if refs.is_empty() {
4949
mark::hit!(test_not_applicable_if_variable_unused);
5050
return None;

0 commit comments

Comments
 (0)