Skip to content

Commit 46bfefc

Browse files
committed
Address comments
1 parent 437b671 commit 46bfefc

File tree

2 files changed

+25
-27
lines changed

2 files changed

+25
-27
lines changed

rust/extractor/src/main.rs

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@ use crate::trap::TrapId;
22
use anyhow::Context;
33
use ra_ap_hir::db::DefDatabase;
44
use ra_ap_hir::Crate;
5-
use ra_ap_load_cargo::{load_workspace, LoadCargoConfig, ProcMacroServerChoice};
5+
use ra_ap_load_cargo::{load_workspace_at, LoadCargoConfig, ProcMacroServerChoice};
66
use ra_ap_project_model::CargoConfig;
7-
use ra_ap_project_model::ProjectWorkspace;
87
use ra_ap_project_model::RustLibSource;
98
use ra_ap_vfs::AbsPathBuf;
109
use std::path::PathBuf;
@@ -16,8 +15,8 @@ pub mod path;
1615
mod translate;
1716
pub mod trap;
1817

19-
pub fn find_project_manifests(
20-
files: &Vec<PathBuf>,
18+
fn find_project_manifests(
19+
files: &[PathBuf],
2120
) -> anyhow::Result<Vec<ra_ap_project_model::ProjectManifest>> {
2221
let current = std::env::current_dir()?;
2322
let abs_files: Vec<_> = files
@@ -53,14 +52,13 @@ fn main() -> anyhow::Result<()> {
5352
};
5453
let projects = find_project_manifests(&cfg.inputs).context("loading inputs")?;
5554
for project in projects {
56-
let mut workspace = ProjectWorkspace::load(project, &config, &progress)?;
55+
let (db, vfs, _macro_server) = load_workspace_at(
56+
project.manifest_path().as_ref(),
57+
&config,
58+
&load_config,
59+
&progress,
60+
)?;
5761

58-
if load_config.load_out_dirs_from_check {
59-
let build_scripts = workspace.run_build_scripts(&config, &progress)?;
60-
workspace.set_build_scripts(build_scripts)
61-
}
62-
63-
let (db, vfs, _macro_server) = load_workspace(workspace, &config.extra_env, &load_config)?;
6462
let crates = <dyn DefDatabase>::crate_graph(&db);
6563
for crate_id in crates.iter() {
6664
let krate = Crate::from(crate_id);

rust/extractor/src/translate.rs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ impl CrateTranslator<'_> {
6969
})
7070
}
7171

72-
fn emit_location_ast_ptr<T>(
72+
fn emit_location_for_ast_ptr<T>(
7373
&mut self,
7474
source: ra_ap_hir::InFile<ra_ap_syntax::AstPtr<T>>,
7575
) -> Option<trap::Label>
@@ -83,26 +83,26 @@ impl CrateTranslator<'_> {
8383
.and_then(|(file_id, source)| self.emit_file(file_id).map(|data| (data, source)))
8484
.map(|(data, source)| {
8585
let range = source.value.text_range();
86-
self.emit_location_textrange(data, range)
86+
self.emit_location_for_textrange(data, range)
8787
})
8888
}
8989

90-
fn emit_location_expr(
90+
fn emit_location_for_expr(
9191
&mut self,
9292
expr: ra_ap_hir_def::hir::ExprId,
9393
source_map: &BodySourceMap,
9494
) -> Option<trap::Label> {
9595
let source = source_map.expr_syntax(expr).ok()?;
96-
self.emit_location_ast_ptr(source)
96+
self.emit_location_for_ast_ptr(source)
9797
}
9898

99-
fn emit_location_pat(
99+
fn emit_location_for_pat(
100100
&mut self,
101101
pat_id: ra_ap_hir_def::hir::PatId,
102102
source_map: &BodySourceMap,
103103
) -> Option<trap::Label> {
104104
let source = source_map.pat_syntax(pat_id).ok()?;
105-
self.emit_location_ast_ptr(source)
105+
self.emit_location_for_ast_ptr(source)
106106
}
107107

108108
fn emit_literal_or_const_pat(
@@ -130,14 +130,14 @@ impl CrateTranslator<'_> {
130130
}
131131
}
132132

133-
fn emit_location_label(
133+
fn emit_location_for_label(
134134
&mut self,
135135
label_id: ra_ap_hir_def::hir::LabelId,
136136
source_map: &BodySourceMap,
137137
) -> Option<trap::Label> {
138138
// 'catch' a panic if the source map is incomplete
139139
let source = std::panic::catch_unwind(|| source_map.label_syntax(label_id)).ok();
140-
source.and_then(|source| self.emit_location_ast_ptr(source))
140+
source.and_then(|source| self.emit_location_for_ast_ptr(source))
141141
}
142142
fn emit_location<T: HasSource>(&mut self, entity: T) -> Option<trap::Label>
143143
where
@@ -149,10 +149,10 @@ impl CrateTranslator<'_> {
149149
.and_then(|(file_id, source)| self.emit_file(file_id).map(|data| (data, source)))
150150
.map(|(data, source)| {
151151
let range = source.value.syntax().text_range();
152-
self.emit_location_textrange(data, range)
152+
self.emit_location_for_textrange(data, range)
153153
})
154154
}
155-
fn emit_location_textrange(&mut self, data: FileData, range: TextRange) -> trap::Label {
155+
fn emit_location_for_textrange(&mut self, data: FileData, range: TextRange) -> trap::Label {
156156
let start = data.line_index.line_col(range.start());
157157
let end = data.line_index.line_col(
158158
range
@@ -168,7 +168,7 @@ impl CrateTranslator<'_> {
168168
body: &Body,
169169
source_map: &BodySourceMap,
170170
) -> trap::Label {
171-
let location: Option<trap::Label> = self.emit_location_label(label_id, source_map);
171+
let location: Option<trap::Label> = self.emit_location_for_label(label_id, source_map);
172172
let label = &body.labels[label_id];
173173
self.trap.emit(generated::Label {
174174
id: TrapId::Star,
@@ -177,7 +177,7 @@ impl CrateTranslator<'_> {
177177
})
178178
}
179179
fn emit_pat(&mut self, pat_id: PatId, body: &Body, source_map: &BodySourceMap) -> trap::Label {
180-
let location: Option<trap::Label> = self.emit_location_pat(pat_id, source_map);
180+
let location: Option<trap::Label> = self.emit_location_for_pat(pat_id, source_map);
181181
let pat = &body.pats[pat_id];
182182
match pat {
183183
ra_ap_hir_def::hir::Pat::Missing => self.trap.emit(generated::MissingPat {
@@ -329,7 +329,7 @@ impl CrateTranslator<'_> {
329329
body: &Body,
330330
source_map: &BodySourceMap,
331331
) -> trap::Label {
332-
let location: Option<trap::Label> = self.emit_location_pat(arm.pat, source_map);
332+
let location: Option<trap::Label> = self.emit_location_for_pat(arm.pat, source_map);
333333
let pat = self.emit_pat(arm.pat, body, source_map);
334334
let guard = arm.guard.map(|g| self.emit_expr(g, body, source_map));
335335
let expr = self.emit_expr(arm.expr, body, source_map);
@@ -355,7 +355,7 @@ impl CrateTranslator<'_> {
355355
else_branch,
356356
} => {
357357
// TODO: find a way to get the location of the entire statement
358-
let location = self.emit_location_pat(*pat, source_map);
358+
let location = self.emit_location_for_pat(*pat, source_map);
359359
let pat = self.emit_pat(*pat, body, source_map);
360360
let type_ref = type_ref
361361
.as_ref()
@@ -374,7 +374,7 @@ impl CrateTranslator<'_> {
374374
})
375375
}
376376
Statement::Expr { expr, has_semi } => {
377-
let location = self.emit_location_expr(*expr, source_map);
377+
let location = self.emit_location_for_expr(*expr, source_map);
378378
let expr = self.emit_expr(*expr, body, source_map);
379379
self.trap.emit(generated::ExprStmt {
380380
id: TrapId::Star,
@@ -395,7 +395,7 @@ impl CrateTranslator<'_> {
395395
body: &Body,
396396
source_map: &BodySourceMap,
397397
) -> trap::Label {
398-
let location: Option<trap::Label> = self.emit_location_expr(expr_id, source_map);
398+
let location: Option<trap::Label> = self.emit_location_for_expr(expr_id, source_map);
399399
let expr = &body[expr_id];
400400
match expr {
401401
ra_ap_hir_def::hir::Expr::Missing => self.trap.emit(generated::MissingExpr {

0 commit comments

Comments
 (0)