From 57353c7afc214b81fcf4400fb188ca4bd9cbad17 Mon Sep 17 00:00:00 2001 From: David Barsky Date: Tue, 4 Mar 2025 15:51:20 -0500 Subject: [PATCH] internal: flatten/deduplicate `base_db::EditionedFileId` --- crates/base-db/src/lib.rs | 18 ++++++++++++++---- crates/hir-def/src/expr_store/scope.rs | 4 ++-- .../hir-def/src/macro_expansion_tests/mod.rs | 7 +++---- crates/hir-def/src/nameres.rs | 3 +-- crates/hir-def/src/test_db.rs | 3 +-- crates/hir-expand/src/builtin/fn_macro.rs | 8 +++----- crates/hir-expand/src/db.rs | 6 ++---- crates/hir-expand/src/files.rs | 9 +++------ crates/hir-expand/src/span_map.rs | 3 +-- crates/hir/src/semantics.rs | 9 +++------ crates/ide-assists/src/assist_context.rs | 2 -- .../src/handlers/add_missing_match_arms.rs | 2 -- .../ide-assists/src/handlers/extract_module.rs | 2 -- .../src/handlers/generate_function.rs | 1 - .../src/handlers/remove_unused_param.rs | 1 - crates/ide-completion/src/context.rs | 5 ++--- crates/ide-completion/src/lib.rs | 5 ++--- crates/ide-db/src/imports/insert_use/tests.rs | 4 ++-- crates/ide-db/src/search.rs | 10 +++++----- .../ide-db/src/syntax_helpers/suggest_name.rs | 2 +- crates/ide-db/src/traits.rs | 2 -- crates/ide-diagnostics/src/lib.rs | 4 ++-- crates/ide-ssr/src/from_comment.rs | 3 +-- crates/ide-ssr/src/lib.rs | 1 - crates/ide-ssr/src/resolving.rs | 1 - crates/ide-ssr/src/search.rs | 1 - crates/ide/src/highlight_related.rs | 1 - crates/ide/src/inlay_hints.rs | 2 -- crates/ide/src/lib.rs | 12 +++--------- crates/ide/src/rename.rs | 2 +- crates/ide/src/syntax_highlighting.rs | 2 +- crates/ide/src/syntax_highlighting/html.rs | 2 +- crates/ide/src/typing.rs | 1 - crates/ide/src/typing/on_enter.rs | 1 - .../src/cli/unresolved_references.rs | 1 - 35 files changed, 54 insertions(+), 86 deletions(-) diff --git a/crates/base-db/src/lib.rs b/crates/base-db/src/lib.rs index 828250ae5689..049b06c3aede 100644 --- a/crates/base-db/src/lib.rs +++ b/crates/base-db/src/lib.rs @@ -157,10 +157,21 @@ impl Files { #[salsa::interned(no_lifetime)] pub struct EditionedFileId { - pub file_id: vfs::FileId, pub editioned_file_id: span::EditionedFileId, } +impl EditionedFileId { + pub fn file_id(&self, db: &dyn salsa::Database) -> vfs::FileId { + let id = self.editioned_file_id(db); + id.file_id() + } + + fn unpack(&self, db: &dyn salsa::Database) -> (vfs::FileId, span::Edition) { + let id = self.editioned_file_id(db); + (id.file_id(), id.edition()) + } +} + #[salsa::input] pub struct FileText { pub text: Arc, @@ -267,9 +278,8 @@ fn toolchain_channel(db: &dyn RootQueryDb, krate: CrateId) -> Option Parse { let _p = tracing::info_span!("parse", ?file_id).entered(); - let (text, editioned_file_id) = - (db.file_text(file_id.file_id(db)).text(db), file_id.editioned_file_id(db)); - let (_, edition) = editioned_file_id.unpack(); + let (file_id, edition) = file_id.unpack(db.as_dyn_database()); + let text = db.file_text(file_id).text(db); ast::SourceFile::parse(&text, edition) } diff --git a/crates/hir-def/src/expr_store/scope.rs b/crates/hir-def/src/expr_store/scope.rs index 412bc55ae1fb..42a8eae4064d 100644 --- a/crates/hir-def/src/expr_store/scope.rs +++ b/crates/hir-def/src/expr_store/scope.rs @@ -363,7 +363,7 @@ mod tests { let (file_id, _) = editioned_file_id.unpack(); let editioned_file_id_wrapper = - base_db::EditionedFileId::new(db.as_dyn_database(), file_id, editioned_file_id); + base_db::EditionedFileId::new(db.as_dyn_database(), editioned_file_id); let file_syntax = db.parse(editioned_file_id_wrapper).syntax_node(); let marker: ast::PathExpr = find_node_at_offset(&file_syntax, offset).unwrap(); @@ -521,7 +521,7 @@ fn foo() { let (file_id, _) = editioned_file_id.unpack(); let file_id_wrapper = - base_db::EditionedFileId::new(db.as_dyn_database(), file_id, editioned_file_id); + base_db::EditionedFileId::new(db.as_dyn_database(), editioned_file_id); let file = db.parse(file_id_wrapper).ok().unwrap(); let expected_name = find_node_at_offset::(file.syntax(), expected_offset.into()) diff --git a/crates/hir-def/src/macro_expansion_tests/mod.rs b/crates/hir-def/src/macro_expansion_tests/mod.rs index df6582ee6e33..ff8ccd9828ca 100644 --- a/crates/hir-def/src/macro_expansion_tests/mod.rs +++ b/crates/hir-def/src/macro_expansion_tests/mod.rs @@ -67,11 +67,10 @@ fn check_errors(#[rust_analyzer::rust_fixture] ra_fixture: &str, expect: Expect) let editioned_file_id = ast_id.file_id.file_id().expect("unable to get FileId; this is a bug"); - let (file_id, _) = editioned_file_id.unpack(); - let editioned_file_id_wrapper = - base_db::EditionedFileId::new(db.as_dyn_database(), file_id, editioned_file_id); + let editioned_file_id = + base_db::EditionedFileId::new(db.as_dyn_database(), editioned_file_id); - let ast = db.parse(editioned_file_id_wrapper).syntax_node(); + let ast = db.parse(editioned_file_id).syntax_node(); let ast_id_map = db.ast_id_map(ast_id.file_id); let node = ast_id_map.get_erased(ast_id.value).to_node(&ast); Some((node.text_range(), errors)) diff --git a/crates/hir-def/src/nameres.rs b/crates/hir-def/src/nameres.rs index b3b1e10227a8..5b3d75c4ee66 100644 --- a/crates/hir-def/src/nameres.rs +++ b/crates/hir-def/src/nameres.rs @@ -297,8 +297,7 @@ impl ModuleOrigin { match self { &ModuleOrigin::File { definition: editioned_file_id, .. } | &ModuleOrigin::CrateRoot { definition: editioned_file_id } => { - let (file_id, _) = editioned_file_id.unpack(); - let definition = base_db::EditionedFileId::new(db, file_id, editioned_file_id); + let definition = base_db::EditionedFileId::new(db, editioned_file_id); let sf = db.parse(definition).tree(); InFile::new(editioned_file_id.into(), ModuleSource::SourceFile(sf)) diff --git a/crates/hir-def/src/test_db.rs b/crates/hir-def/src/test_db.rs index a87b35368716..b6f08c0cafdb 100644 --- a/crates/hir-def/src/test_db.rs +++ b/crates/hir-def/src/test_db.rs @@ -270,9 +270,8 @@ impl TestDB { let source_map = db.body_with_source_map(def_with_body).1; let scopes = db.expr_scopes(def_with_body); - let (file_id, _) = position.file_id.unpack(); let editioned_file_id_wrapper = - base_db::EditionedFileId::new(db.as_dyn_database(), file_id, position.file_id); + base_db::EditionedFileId::new(db.as_dyn_database(), position.file_id); let root = db.parse(editioned_file_id_wrapper); let scope_iter = algo::ancestors_at_offset(&root.syntax_node(), position.offset) diff --git a/crates/hir-expand/src/builtin/fn_macro.rs b/crates/hir-expand/src/builtin/fn_macro.rs index 050ae144ee9f..d8b3f40e8f41 100644 --- a/crates/hir-expand/src/builtin/fn_macro.rs +++ b/crates/hir-expand/src/builtin/fn_macro.rs @@ -728,11 +728,9 @@ fn include_expand( tt: &tt::TopSubtree, span: Span, ) -> ExpandResult { - let (file_id, editioned_file_id) = match include_input_to_file_id(db, arg_id, tt) { + let (file_id_wrapper, editioned_file_id) = match include_input_to_file_id(db, arg_id, tt) { Ok(editioned_file_id) => { - let (file_id, _) = editioned_file_id.unpack(); - let file_id = base_db::EditionedFileId::new(db, file_id, editioned_file_id); - (file_id, editioned_file_id) + (base_db::EditionedFileId::new(db, editioned_file_id), editioned_file_id) } Err(e) => { return ExpandResult::new( @@ -744,7 +742,7 @@ fn include_expand( let span_map = db.real_span_map(editioned_file_id); // FIXME: Parse errors ExpandResult::ok(syntax_node_to_token_tree( - &db.parse(file_id).syntax_node(), + &db.parse(file_id_wrapper).syntax_node(), SpanMap::RealSpanMap(span_map), span, syntax_bridge::DocCommentDesugarMode::ProcMacro, diff --git a/crates/hir-expand/src/db.rs b/crates/hir-expand/src/db.rs index 727260f9af53..5e1cca79893d 100644 --- a/crates/hir-expand/src/db.rs +++ b/crates/hir-expand/src/db.rs @@ -369,8 +369,7 @@ fn ast_id_map(db: &dyn ExpandDatabase, file_id: span::HirFileId) -> triomphe::Ar fn parse_or_expand(db: &dyn ExpandDatabase, file_id: HirFileId) -> SyntaxNode { match file_id.repr() { HirFileIdRepr::FileId(editioned_file_id) => { - let (file_id, _) = editioned_file_id.unpack(); - let file_id = base_db::EditionedFileId::new(db, file_id, editioned_file_id); + let file_id = base_db::EditionedFileId::new(db, editioned_file_id); db.parse(file_id).syntax_node() } @@ -432,8 +431,7 @@ pub(crate) fn parse_with_map( ) -> (Parse, SpanMap) { match file_id.repr() { HirFileIdRepr::FileId(editioned_file_id) => { - let (file_id, _) = editioned_file_id.unpack(); - let file_id = base_db::EditionedFileId::new(db, file_id, editioned_file_id); + let file_id = base_db::EditionedFileId::new(db, editioned_file_id); ( db.parse(file_id).to_syntax(), diff --git a/crates/hir-expand/src/files.rs b/crates/hir-expand/src/files.rs index 77690e76ccf2..5810d11338cb 100644 --- a/crates/hir-expand/src/files.rs +++ b/crates/hir-expand/src/files.rs @@ -159,8 +159,7 @@ trait FileIdToSyntax: Copy { impl FileIdToSyntax for EditionedFileId { fn file_syntax(self, db: &dyn db::ExpandDatabase) -> SyntaxNode { - let (file_id, _) = self.unpack(); - let file_id = base_db::EditionedFileId::new(db, file_id, self); + let file_id = base_db::EditionedFileId::new(db, self); db.parse(file_id).syntax_node() } @@ -293,8 +292,7 @@ impl> InFile { self.value.borrow().text_range(), )?; - let (file_id, _) = editioned_file_id.unpack(); - let file_id = base_db::EditionedFileId::new(db, file_id, editioned_file_id); + let file_id = base_db::EditionedFileId::new(db, editioned_file_id); let kind = self.kind(); let value = db @@ -473,8 +471,7 @@ impl InFile { self.value.syntax().text_range(), )?; - let (file_id, _) = editioned_file_id.unpack(); - let file_id = base_db::EditionedFileId::new(db, file_id, editioned_file_id); + let file_id = base_db::EditionedFileId::new(db, editioned_file_id); // FIXME: This heuristic is brittle and with the right macro may select completely unrelated nodes? let anc = db.parse(file_id).syntax_node().covering_element(range); diff --git a/crates/hir-expand/src/span_map.rs b/crates/hir-expand/src/span_map.rs index a78a8f0d4b33..ab99cb14f956 100644 --- a/crates/hir-expand/src/span_map.rs +++ b/crates/hir-expand/src/span_map.rs @@ -87,8 +87,7 @@ pub(crate) fn real_span_map( let mut pairs = vec![(syntax::TextSize::new(0), span::ROOT_ERASED_FILE_AST_ID)]; let ast_id_map = db.ast_id_map(editioned_file_id.into()); - let (file_id, _) = editioned_file_id.unpack(); - let file_id = base_db::EditionedFileId::new(db, file_id, editioned_file_id); + let file_id = base_db::EditionedFileId::new(db, editioned_file_id); let tree = db.parse(file_id).tree(); // This is an incrementality layer. Basically we can't use absolute ranges for our spans as that diff --git a/crates/hir/src/semantics.rs b/crates/hir/src/semantics.rs index d6fd83036909..83fba6fe07a2 100644 --- a/crates/hir/src/semantics.rs +++ b/crates/hir/src/semantics.rs @@ -326,8 +326,7 @@ impl<'db> SemanticsImpl<'db> { .attach_first_edition(file_id) .unwrap_or_else(|| EditionedFileId::current_edition(file_id)); - let (file_id, _) = editioned_file_id.unpack(); - let file_id = base_db::EditionedFileId::new(self.db, file_id, editioned_file_id); + let file_id = base_db::EditionedFileId::new(self.db, editioned_file_id); let tree = self.db.parse(file_id).tree(); self.cache(tree.syntax().clone(), editioned_file_id.into()); @@ -1876,8 +1875,7 @@ fn macro_call_to_macro_id( Either::Left(it) => { let node = match it.file_id.repr() { HirFileIdRepr::FileId(editioned_file_id) => { - let (file_id, _) = editioned_file_id.unpack(); - let file_id = base_db::EditionedFileId::new(db, file_id, editioned_file_id); + let file_id = base_db::EditionedFileId::new(db, editioned_file_id); it.to_ptr(db).to_node(&db.parse(file_id).syntax_node()) } @@ -1891,8 +1889,7 @@ fn macro_call_to_macro_id( Either::Right(it) => { let node = match it.file_id.repr() { HirFileIdRepr::FileId(editioned_file_id) => { - let (file_id, _) = editioned_file_id.unpack(); - let file_id = base_db::EditionedFileId::new(db, file_id, editioned_file_id); + let file_id = base_db::EditionedFileId::new(db, editioned_file_id); it.to_ptr(db).to_node(&db.parse(file_id).syntax_node()) } diff --git a/crates/ide-assists/src/assist_context.rs b/crates/ide-assists/src/assist_context.rs index 7c51246a111e..3bc4b63e4787 100644 --- a/crates/ide-assists/src/assist_context.rs +++ b/crates/ide-assists/src/assist_context.rs @@ -65,10 +65,8 @@ impl<'a> AssistContext<'a> { config: &'a AssistConfig, frange: FileRange, ) -> AssistContext<'a> { - let (file_id, _) = frange.file_id.unpack(); let editioned_file_id = ide_db::base_db::EditionedFileId::new( sema.db.as_dyn_database(), - file_id, frange.file_id, ); diff --git a/crates/ide-assists/src/handlers/add_missing_match_arms.rs b/crates/ide-assists/src/handlers/add_missing_match_arms.rs index 1752cbdd2da1..fee7662a7849 100644 --- a/crates/ide-assists/src/handlers/add_missing_match_arms.rs +++ b/crates/ide-assists/src/handlers/add_missing_match_arms.rs @@ -257,10 +257,8 @@ pub(crate) fn add_missing_match_arms(acc: &mut Assists, ctx: &AssistContext<'_>) // Just replace the element that the original range came from let old_place = { // Find the original element - let file_id = arm_list_range.file_id.file_id(); let editioned_file_id = ide_db::base_db::EditionedFileId::new( ctx.sema.db.as_dyn_database(), - file_id, arm_list_range.file_id, ); diff --git a/crates/ide-assists/src/handlers/extract_module.rs b/crates/ide-assists/src/handlers/extract_module.rs index 4ad17369b166..f70f4815b3d1 100644 --- a/crates/ide-assists/src/handlers/extract_module.rs +++ b/crates/ide-assists/src/handlers/extract_module.rs @@ -334,7 +334,6 @@ impl Module { for (file_id, refs) in node_def.usages(&ctx.sema).all() { let editioned_file_id = ide_db::base_db::EditionedFileId::new( ctx.sema.db.as_dyn_database(), - file_id.file_id(), file_id, ); @@ -467,7 +466,6 @@ impl Module { let editioned_file_id = ide_db::base_db::EditionedFileId::new( ctx.sema.db.as_dyn_database(), - file_id.file_id(), file_id, ); diff --git a/crates/ide-assists/src/handlers/generate_function.rs b/crates/ide-assists/src/handlers/generate_function.rs index 3e07dee94287..9b02532a78aa 100644 --- a/crates/ide-assists/src/handlers/generate_function.rs +++ b/crates/ide-assists/src/handlers/generate_function.rs @@ -209,7 +209,6 @@ fn get_adt_source( let editioned_file_id = ide_db::base_db::EditionedFileId::new( ctx.sema.db.as_dyn_database(), - range.file_id.file_id(), range.file_id, ); diff --git a/crates/ide-assists/src/handlers/remove_unused_param.rs b/crates/ide-assists/src/handlers/remove_unused_param.rs index 0425284c267d..570b6e94accf 100644 --- a/crates/ide-assists/src/handlers/remove_unused_param.rs +++ b/crates/ide-assists/src/handlers/remove_unused_param.rs @@ -106,7 +106,6 @@ fn process_usages( ) { let editioned_file_id_wrapper = ide_db::base_db::EditionedFileId::new( ctx.sema.db.as_dyn_database(), - file_id.file_id(), file_id, ); diff --git a/crates/ide-completion/src/context.rs b/crates/ide-completion/src/context.rs index 02cd0472cc82..b778526deac7 100644 --- a/crates/ide-completion/src/context.rs +++ b/crates/ide-completion/src/context.rs @@ -709,7 +709,6 @@ impl<'a> CompletionContext<'a> { let editioned_file_id = sema.attach_first_edition(file_id)?; let editioned_file_id_wrapper = ide_db::base_db::EditionedFileId::new( sema.db.as_dyn_database(), - file_id, editioned_file_id, ); @@ -719,9 +718,9 @@ impl<'a> CompletionContext<'a> { // to determine context, though the original_file will be used for // actual completion. let file_with_fake_ident = { - let (file_id, edition) = editioned_file_id.unpack(); + let (_, edition) = editioned_file_id.unpack(); let file_id_wrapper = - base_db::EditionedFileId::new(db.as_dyn_database(), file_id, editioned_file_id); + base_db::EditionedFileId::new(db.as_dyn_database(), editioned_file_id); let parse = db.parse(file_id_wrapper); parse.reparse(TextRange::empty(offset), COMPLETION_MARKER, edition).tree() diff --git a/crates/ide-completion/src/lib.rs b/crates/ide-completion/src/lib.rs index 8606411f14f2..83a27d8fcba9 100644 --- a/crates/ide-completion/src/lib.rs +++ b/crates/ide-completion/src/lib.rs @@ -277,13 +277,12 @@ pub fn resolve_completion_edits( let sema = hir::Semantics::new(db); let editioned_file_id = sema.attach_first_edition(file_id)?; - let editioned_file_id_wrapper = ide_db::base_db::EditionedFileId::new( + let editioned_file_id = ide_db::base_db::EditionedFileId::new( db.as_dyn_database(), - editioned_file_id.file_id(), editioned_file_id, ); - let original_file = sema.parse(editioned_file_id_wrapper); + let original_file = sema.parse(editioned_file_id); let original_token = syntax::AstNode::syntax(&original_file).token_at_offset(offset).left_biased()?; let position_for_import = &original_token.parent()?; diff --git a/crates/ide-db/src/imports/insert_use/tests.rs b/crates/ide-db/src/imports/insert_use/tests.rs index 4d02ab836e3e..7f8eb5cc2170 100644 --- a/crates/ide-db/src/imports/insert_use/tests.rs +++ b/crates/ide-db/src/imports/insert_use/tests.rs @@ -1253,14 +1253,14 @@ fn check_with_config( let (db, file_id, range_or_offset) = RootDatabase::with_range_or_offset(ra_fixture_before); let file_id = - crate::base_db::EditionedFileId::new(db.as_dyn_database(), file_id.file_id(), file_id); + crate::base_db::EditionedFileId::new(db.as_dyn_database(), file_id); (db, file_id, Some(range_or_offset)) } else { let (db, file_id) = RootDatabase::with_single_file(ra_fixture_before); let file_id = - crate::base_db::EditionedFileId::new(db.as_dyn_database(), file_id.file_id(), file_id); + crate::base_db::EditionedFileId::new(db.as_dyn_database(), file_id); (db, file_id, None) }; diff --git a/crates/ide-db/src/search.rs b/crates/ide-db/src/search.rs index 24d81cbb405f..2c8437a5e349 100644 --- a/crates/ide-db/src/search.rs +++ b/crates/ide-db/src/search.rs @@ -653,7 +653,7 @@ impl<'a> FindUsages<'a> { FindUsages::scope_files(db, ¤t_to_process_search_scope) { let file_id = - crate::base_db::EditionedFileId::new(db, file_id.file_id(), file_id); + crate::base_db::EditionedFileId::new(db, file_id); let tree = LazyCell::new(move || sema.parse(file_id).syntax().clone()); @@ -815,7 +815,7 @@ impl<'a> FindUsages<'a> { ) { for (file_text, file_id, search_range) in files { let file_id_wrapper = - crate::base_db::EditionedFileId::new(this.sema.db, file_id.file_id(), file_id); + crate::base_db::EditionedFileId::new(this.sema.db, file_id); let tree = LazyCell::new(move || this.sema.parse(file_id_wrapper).syntax().clone()); @@ -957,7 +957,7 @@ impl<'a> FindUsages<'a> { self.include_self_kw_refs.as_ref().map(|ty| (ty, Finder::new("Self"))); for (text, file_id, search_range) in Self::scope_files(sema.db, &search_scope) { let file_id_wrapper = - crate::base_db::EditionedFileId::new(sema.db, file_id.file_id(), file_id); + crate::base_db::EditionedFileId::new(sema.db,file_id); let tree = LazyCell::new(move || sema.parse(file_id_wrapper).syntax().clone()); @@ -1015,7 +1015,7 @@ impl<'a> FindUsages<'a> { self.sema.db.unwind_if_revision_cancelled(); let file_id_wrapper = - crate::base_db::EditionedFileId::new(sema.db, file_id.file_id(), file_id); + crate::base_db::EditionedFileId::new(sema.db, file_id); let tree = LazyCell::new(move || sema.parse(file_id_wrapper).syntax().clone()); for offset in Self::match_indices(&text, finder, search_range) { @@ -1070,7 +1070,7 @@ impl<'a> FindUsages<'a> { search_range.unwrap_or_else(|| TextRange::up_to(TextSize::of(&*text))); let file_id = - crate::base_db::EditionedFileId::new(sema.db, file_id.file_id(), file_id); + crate::base_db::EditionedFileId::new(sema.db, file_id); let tree = LazyCell::new(|| sema.parse(file_id).syntax().clone()); let finder = &Finder::new("self"); diff --git a/crates/ide-db/src/syntax_helpers/suggest_name.rs b/crates/ide-db/src/syntax_helpers/suggest_name.rs index 3ca0484e4bd1..84aed60c07ba 100644 --- a/crates/ide-db/src/syntax_helpers/suggest_name.rs +++ b/crates/ide-db/src/syntax_helpers/suggest_name.rs @@ -460,7 +460,7 @@ mod tests { let sema = Semantics::new(&db); let file_id = - crate::base_db::EditionedFileId::new(sema.db, frange.file_id.file_id(), frange.file_id); + crate::base_db::EditionedFileId::new(sema.db, frange.file_id); let source_file = sema.parse(file_id); let element = source_file.syntax().covering_element(frange.range); diff --git a/crates/ide-db/src/traits.rs b/crates/ide-db/src/traits.rs index 7e0340399df4..0f95739f4f94 100644 --- a/crates/ide-db/src/traits.rs +++ b/crates/ide-db/src/traits.rs @@ -142,7 +142,6 @@ mod tests { let editioned_file_id = crate::base_db::EditionedFileId::new( sema.db.as_dyn_database(), - position.file_id.file_id(), position.file_id, ); @@ -163,7 +162,6 @@ mod tests { let editioned_file_id = crate::base_db::EditionedFileId::new( sema.db.as_dyn_database(), - position.file_id.file_id(), position.file_id, ); diff --git a/crates/ide-diagnostics/src/lib.rs b/crates/ide-diagnostics/src/lib.rs index 5c73a9109612..fac3a732291e 100644 --- a/crates/ide-diagnostics/src/lib.rs +++ b/crates/ide-diagnostics/src/lib.rs @@ -323,7 +323,7 @@ pub fn syntax_diagnostics( let (file_id, _) = editioned_file_id.unpack(); let editioned_file_id_wrapper = - ide_db::base_db::EditionedFileId::new(db.as_dyn_database(), file_id, editioned_file_id); + ide_db::base_db::EditionedFileId::new(db.as_dyn_database(), editioned_file_id); // [#3434] Only take first 128 errors to prevent slowing down editor/ide, the number 128 is chosen arbitrarily. db.parse_errors(editioned_file_id_wrapper) @@ -357,7 +357,7 @@ pub fn semantic_diagnostics( let (file_id, edition) = editioned_file_id.unpack(); let editioned_file_id_wrapper = - ide_db::base_db::EditionedFileId::new(db.as_dyn_database(), file_id, editioned_file_id); + ide_db::base_db::EditionedFileId::new(db.as_dyn_database(), editioned_file_id); let mut res = Vec::new(); diff --git a/crates/ide-ssr/src/from_comment.rs b/crates/ide-ssr/src/from_comment.rs index ac480bf33f37..f6fe705a9874 100644 --- a/crates/ide-ssr/src/from_comment.rs +++ b/crates/ide-ssr/src/from_comment.rs @@ -21,9 +21,8 @@ pub fn ssr_from_comment( ) -> Option<(MatchFinder<'_>, TextRange)> { let comment = { let editioned_file_id = EditionedFileId::current_edition(frange.file_id); - let (file_id, _) = editioned_file_id.unpack(); let file_id = - ide_db::base_db::EditionedFileId::new(db.as_dyn_database(), file_id, editioned_file_id); + ide_db::base_db::EditionedFileId::new(db.as_dyn_database(), editioned_file_id); let file = db.parse(file_id); file.tree().syntax().token_at_offset(frange.range.start()).find_map(ast::Comment::cast) diff --git a/crates/ide-ssr/src/lib.rs b/crates/ide-ssr/src/lib.rs index c2913b620cec..15e02db2accf 100644 --- a/crates/ide-ssr/src/lib.rs +++ b/crates/ide-ssr/src/lib.rs @@ -230,7 +230,6 @@ impl<'db> MatchFinder<'db> { ) -> Vec { let editioned_file_id_wrapper = ide_db::base_db::EditionedFileId::new( self.sema.db.as_dyn_database(), - file_id.file_id(), file_id, ); diff --git a/crates/ide-ssr/src/resolving.rs b/crates/ide-ssr/src/resolving.rs index 0e31d5bf0f69..8c98d8de9183 100644 --- a/crates/ide-ssr/src/resolving.rs +++ b/crates/ide-ssr/src/resolving.rs @@ -200,7 +200,6 @@ impl<'db> ResolutionScope<'db> { use syntax::ast::AstNode; let editioned_file_id_wrapper = ide_db::base_db::EditionedFileId::new( sema.db.as_dyn_database(), - resolve_context.file_id.file_id(), resolve_context.file_id, ); diff --git a/crates/ide-ssr/src/search.rs b/crates/ide-ssr/src/search.rs index 13bf06417ac6..b094712e1bd5 100644 --- a/crates/ide-ssr/src/search.rs +++ b/crates/ide-ssr/src/search.rs @@ -77,7 +77,6 @@ impl MatchFinder<'_> { ) -> Vec { let editioned_file_id_wrapper = ide_db::base_db::EditionedFileId::new( self.sema.db.as_dyn_database(), - file_range.file_id.file_id(), file_range.file_id, ); diff --git a/crates/ide/src/highlight_related.rs b/crates/ide/src/highlight_related.rs index e1933f2a8e3b..e2614e24bb4e 100644 --- a/crates/ide/src/highlight_related.rs +++ b/crates/ide/src/highlight_related.rs @@ -63,7 +63,6 @@ pub(crate) fn highlight_related( .unwrap_or_else(|| EditionedFileId::current_edition(file_id)); let editioned_file_id_wrapper = ide_db::base_db::EditionedFileId::new( sema.db.as_dyn_database(), - file_id.file_id(), file_id, ); diff --git a/crates/ide/src/inlay_hints.rs b/crates/ide/src/inlay_hints.rs index ffc970ec9d61..3524c75d02e7 100644 --- a/crates/ide/src/inlay_hints.rs +++ b/crates/ide/src/inlay_hints.rs @@ -88,7 +88,6 @@ pub(crate) fn inlay_hints( .unwrap_or_else(|| EditionedFileId::current_edition(file_id)); let editioned_file_id_wrapper = ide_db::base_db::EditionedFileId::new( sema.db.as_dyn_database(), - file_id.file_id(), file_id, ); let file = sema.parse(editioned_file_id_wrapper); @@ -144,7 +143,6 @@ pub(crate) fn inlay_hints_resolve( .unwrap_or_else(|| EditionedFileId::current_edition(file_id)); let editioned_file_id_wrapper = ide_db::base_db::EditionedFileId::new( sema.db.as_dyn_database(), - file_id.file_id(), file_id, ); let file = sema.parse(editioned_file_id_wrapper); diff --git a/crates/ide/src/lib.rs b/crates/ide/src/lib.rs index 57895fb295f9..dcb170f3f7b6 100644 --- a/crates/ide/src/lib.rs +++ b/crates/ide/src/lib.rs @@ -304,7 +304,6 @@ impl Analysis { self.with_db(|db| { let editioned_file_id_wrapper = ide_db::base_db::EditionedFileId::new( self.db.as_dyn_database(), - file_id, EditionedFileId::current_edition(file_id), ); @@ -335,13 +334,11 @@ impl Analysis { /// supported). pub fn matching_brace(&self, position: FilePosition) -> Cancellable> { self.with_db(|db| { - let file_id = position.file_id; - let editioned_file_id_wrapper = ide_db::base_db::EditionedFileId::new( + let file_id = ide_db::base_db::EditionedFileId::new( self.db.as_dyn_database(), - file_id, - EditionedFileId::current_edition(file_id), + EditionedFileId::current_edition(position.file_id), ); - let parse = db.parse(editioned_file_id_wrapper); + let parse = db.parse(file_id); let file = parse.tree(); matching_brace::matching_brace(&file, position.offset) }) @@ -402,7 +399,6 @@ impl Analysis { self.with_db(|db| { let editioned_file_id_wrapper = ide_db::base_db::EditionedFileId::new( self.db.as_dyn_database(), - frange.file_id, EditionedFileId::current_edition(frange.file_id), ); let parse = db.parse(editioned_file_id_wrapper); @@ -443,7 +439,6 @@ impl Analysis { self.with_db(|db| { let editioned_file_id_wrapper = ide_db::base_db::EditionedFileId::new( self.db.as_dyn_database(), - file_id, EditionedFileId::current_edition(file_id), ); @@ -478,7 +473,6 @@ impl Analysis { self.with_db(|db| { let editioned_file_id_wrapper = ide_db::base_db::EditionedFileId::new( self.db.as_dyn_database(), - file_id, EditionedFileId::current_edition(file_id), ); diff --git a/crates/ide/src/rename.rs b/crates/ide/src/rename.rs index 04e2ac481b72..49ecb271ec9c 100644 --- a/crates/ide/src/rename.rs +++ b/crates/ide/src/rename.rs @@ -87,7 +87,7 @@ pub(crate) fn rename( .attach_first_edition(position.file_id) .ok_or_else(|| format_err!("No references found at position"))?; let editioned_file_id_wrapper = - ide_db::base_db::EditionedFileId::new(db.as_dyn_database(), file_id.file_id(), file_id); + ide_db::base_db::EditionedFileId::new(db.as_dyn_database(), file_id); let source_file = sema.parse(editioned_file_id_wrapper); let syntax = source_file.syntax(); diff --git a/crates/ide/src/syntax_highlighting.rs b/crates/ide/src/syntax_highlighting.rs index c985caf084d7..cb4696729693 100644 --- a/crates/ide/src/syntax_highlighting.rs +++ b/crates/ide/src/syntax_highlighting.rs @@ -204,7 +204,7 @@ pub(crate) fn highlight( // Determine the root based on the given range. let (root, range_to_highlight) = { let editioned_file_id_wrapper = - ide_db::base_db::EditionedFileId::new(db.as_dyn_database(), file_id.file_id(), file_id); + ide_db::base_db::EditionedFileId::new(db.as_dyn_database(), file_id); let file = sema.parse(editioned_file_id_wrapper); let source_file = file.syntax(); match range_to_highlight { diff --git a/crates/ide/src/syntax_highlighting/html.rs b/crates/ide/src/syntax_highlighting/html.rs index aa0699ffabb9..6a03da6a6eaa 100644 --- a/crates/ide/src/syntax_highlighting/html.rs +++ b/crates/ide/src/syntax_highlighting/html.rs @@ -18,7 +18,7 @@ pub(crate) fn highlight_as_html(db: &RootDatabase, file_id: FileId, rainbow: boo .attach_first_edition(file_id) .unwrap_or_else(|| EditionedFileId::current_edition(file_id)); let editioned_file_id_wrapper = - ide_db::base_db::EditionedFileId::new(db.as_dyn_database(), file_id.file_id(), file_id); + ide_db::base_db::EditionedFileId::new(db.as_dyn_database(), file_id); let file = sema.parse(editioned_file_id_wrapper); let file = file.syntax(); fn rainbowify(seed: u64) -> String { diff --git a/crates/ide/src/typing.rs b/crates/ide/src/typing.rs index 182ab7ad76a8..d34d9beefb9f 100644 --- a/crates/ide/src/typing.rs +++ b/crates/ide/src/typing.rs @@ -78,7 +78,6 @@ pub(crate) fn on_char_typed( let edition = Edition::CURRENT_FIXME; let editioned_file_id_wrapper = ide_db::base_db::EditionedFileId::new( db.as_dyn_database(), - position.file_id, EditionedFileId::current_edition(position.file_id), ); let file = &db.parse(editioned_file_id_wrapper); diff --git a/crates/ide/src/typing/on_enter.rs b/crates/ide/src/typing/on_enter.rs index 9a2b46e8e55f..8cadb6104039 100644 --- a/crates/ide/src/typing/on_enter.rs +++ b/crates/ide/src/typing/on_enter.rs @@ -53,7 +53,6 @@ use ide_db::text_edit::TextEdit; pub(crate) fn on_enter(db: &RootDatabase, position: FilePosition) -> Option { let editioned_file_id_wrapper = ide_db::base_db::EditionedFileId::new( db.as_dyn_database(), - position.file_id, EditionedFileId::current_edition(position.file_id), ); let parse = db.parse(editioned_file_id_wrapper); diff --git a/crates/rust-analyzer/src/cli/unresolved_references.rs b/crates/rust-analyzer/src/cli/unresolved_references.rs index 4fa3c6e1df26..dd4325f3ccb6 100644 --- a/crates/rust-analyzer/src/cli/unresolved_references.rs +++ b/crates/rust-analyzer/src/cli/unresolved_references.rs @@ -143,7 +143,6 @@ fn all_unresolved_references( .unwrap_or_else(|| EditionedFileId::current_edition(file_id)); let editioned_file_id_wrapper = ide_db::base_db::EditionedFileId::new( sema.db.as_dyn_database(), - file_id.file_id(), file_id, ); let file = sema.parse(editioned_file_id_wrapper);