Skip to content

Commit fe7e1c0

Browse files
author
Paolo Tranquilli
committed
Rust: solve all compilation errors but the ones related to the crate graph
1 parent 7cf3cac commit fe7e1c0

File tree

4 files changed

+20
-20
lines changed

4 files changed

+20
-20
lines changed

rust/extractor/src/config.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,8 +213,7 @@ fn to_cfg_overrides(specs: &Vec<String>) -> CfgOverrides {
213213
}
214214
let enabled_cfgs = enabled_cfgs.into_iter().collect();
215215
let disabled_cfgs = disabled_cfgs.into_iter().collect();
216-
let global = CfgDiff::new(enabled_cfgs, disabled_cfgs)
217-
.expect("There should be no duplicate cfgs by construction");
216+
let global = CfgDiff::new(enabled_cfgs, disabled_cfgs);
218217
CfgOverrides {
219218
global,
220219
..Default::default()

rust/extractor/src/crate_graph.rs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,7 @@ fn emit_adt(
402402
);
403403
}
404404
ra_ap_hir_def::AdtId::EnumId(enum_id) => {
405-
let data = db.enum_data(enum_id);
405+
let data = db.enum_variants(enum_id);
406406
let variants = data
407407
.variants
408408
.iter()
@@ -480,13 +480,13 @@ fn emit_trait(
480480
visibility: Visibility,
481481
) -> Vec<trap::Label<generated::Item>> {
482482
let mut items = Vec::new();
483-
let data = db.trait_data(trait_id);
483+
let data = db.trait_items(trait_id);
484484
let assoc_items: Vec<trap::Label<generated::AssocItem>> = data
485485
.items
486486
.iter()
487487
.flat_map(|(name, item)| {
488488
if let AssocItemId::FunctionId(function) = item {
489-
let sig = db.callable_item_signature((*function).into());
489+
let sig = db.callable_item_signature(function.clone().into());
490490
let sig = sig.skip_binders();
491491
let params = sig
492492
.params()
@@ -582,24 +582,25 @@ fn emit_module_impls(
582582
module.scope.impls().for_each(|imp| {
583583
let self_ty = db.impl_self_ty(imp);
584584
let self_ty = emit_hir_ty(trap, crate_graph, db, self_ty.skip_binders());
585-
let imp = db.impl_data(imp);
586-
let trait_ = imp
585+
let imp_data = db.impl_data(imp);
586+
let trait_ = imp_data
587587
.target_trait
588588
.as_ref()
589-
.and_then(|t| make_qualified_path(trap, emit_hir_path(&imp.types_map[t.path])));
589+
.and_then(|t| make_qualified_path(trap, emit_hir_path(&imp_data.types_map[t.path])));
590590
let trait_ = trait_.map(|trait_| {
591591
trap.emit(generated::PathTypeRepr {
592592
id: trap::TrapId::Star,
593593
path: Some(trait_),
594594
})
595595
.into()
596596
});
597-
let assoc_items = imp
597+
let imp_items = db.impl_items(imp);
598+
let assoc_items = imp_items
598599
.items
599600
.iter()
600601
.flat_map(|item| {
601602
if let (name, AssocItemId::FunctionId(function)) = item {
602-
let sig = db.callable_item_signature((*function).into());
603+
let sig = db.callable_item_signature(function.clone().into());
603604
let sig = sig.skip_binders();
604605
let params = sig
605606
.params()
@@ -631,7 +632,7 @@ fn emit_module_impls(
631632
id: trap::TrapId::Star,
632633
text: Some(name.as_str().to_owned()),
633634
}));
634-
let data = db.function_data(*function);
635+
let data = db.function_data(function.clone());
635636
let visibility = emit_visibility(
636637
crate_graph,
637638
db,

rust/extractor/src/rust_analyzer.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
use itertools::Itertools;
2-
use ra_ap_base_db::SourceDatabase;
2+
use ra_ap_base_db::{EditionedFileId, RootQueryDb, SourceDatabase};
33
use ra_ap_hir::Semantics;
44
use ra_ap_ide_db::RootDatabase;
55
use ra_ap_load_cargo::{LoadCargoConfig, load_workspace_at};
66
use ra_ap_paths::{AbsPath, Utf8PathBuf};
77
use ra_ap_project_model::ProjectManifest;
88
use ra_ap_project_model::{CargoConfig, ManifestPath};
99
use ra_ap_span::Edition;
10-
use ra_ap_span::EditionedFileId;
10+
use ra_ap_span::EditionedFileId as SpanEditionedFileId;
1111
use ra_ap_span::TextRange;
1212
use ra_ap_span::TextSize;
1313
use ra_ap_syntax::SourceFile;
@@ -73,7 +73,7 @@ impl<'a> RustAnalyzer<'a> {
7373
if let Some(file_id) = path_to_file_id(path, vfs) {
7474
if let Ok(input) = std::panic::catch_unwind(|| semantics.db.file_text(file_id))
7575
{
76-
let file_id = EditionedFileId::current_edition(file_id);
76+
let file_id = EditionedFileId::new(semantics.db, SpanEditionedFileId::current_edition(file_id));
7777
let source_file = semantics.parse(file_id);
7878
let errors = semantics
7979
.db
@@ -84,7 +84,7 @@ impl<'a> RustAnalyzer<'a> {
8484

8585
return ParseResult {
8686
ast: source_file,
87-
text: input,
87+
text: input.text(semantics.db),
8888
errors,
8989
semantics_info: Ok(FileSemanticInformation { file_id, semantics }),
9090
};

rust/extractor/src/translate/base.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ use crate::rust_analyzer::FileSemanticInformation;
44
use crate::trap::{DiagnosticSeverity, TrapFile, TrapId};
55
use crate::trap::{Label, TrapClass};
66
use itertools::Either;
7-
use ra_ap_base_db::CrateOrigin;
8-
use ra_ap_base_db::ra_salsa::InternKey;
7+
use ra_ap_base_db::{CrateOrigin, EditionedFileId};
8+
use ra_ap_base_db::salsa::plumbing::AsId;
99
use ra_ap_hir::db::ExpandDatabase;
1010
use ra_ap_hir::{
1111
Adt, Crate, ItemContainer, Module, ModuleDef, PathResolution, Semantics, Type, Variant,
@@ -16,7 +16,7 @@ use ra_ap_hir_expand::ExpandTo;
1616
use ra_ap_ide_db::RootDatabase;
1717
use ra_ap_ide_db::line_index::{LineCol, LineIndex};
1818
use ra_ap_parser::SyntaxKind;
19-
use ra_ap_span::{EditionedFileId, TextSize};
19+
use ra_ap_span::TextSize;
2020
use ra_ap_syntax::ast::HasName;
2121
use ra_ap_syntax::{
2222
AstNode, NodeOrToken, SyntaxElementChildren, SyntaxError, SyntaxNode, SyntaxToken, TextRange,
@@ -148,7 +148,7 @@ impl<'a> Translator<'a> {
148148
if let Some(semantics) = self.semantics.as_ref() {
149149
let file_range = semantics.original_range(node.syntax());
150150
let file_id = self.file_id?;
151-
if file_id == file_range.file_id {
151+
if file_id.file_id(semantics.db) == file_range.file_id {
152152
Some(file_range.range)
153153
} else {
154154
None
@@ -401,7 +401,7 @@ impl<'a> Translator<'a> {
401401
fn canonical_path_from_hir_module(&self, item: Module) -> Option<String> {
402402
if let Some(block_id) = ModuleId::from(item).containing_block() {
403403
// this means this is a block module, i.e. a virtual module for a block scope
404-
return Some(format!("{{{}}}", block_id.as_intern_id()));
404+
return Some(format!("{{{}}}", block_id.as_id().as_u32()));
405405
}
406406
if item.is_crate_root() {
407407
return Some("crate".into());

0 commit comments

Comments
 (0)