Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/interpret.rs')
-rw-r--r--crates/ide/src/interpret.rs19
1 files changed, 9 insertions, 10 deletions
diff --git a/crates/ide/src/interpret.rs b/crates/ide/src/interpret.rs
index 74dad488b4..8f9d2d6bf1 100644
--- a/crates/ide/src/interpret.rs
+++ b/crates/ide/src/interpret.rs
@@ -1,8 +1,8 @@
use hir::{ConstEvalError, DefWithBody, DisplayTarget, Semantics};
-use ide_db::{base_db::SourceRootDatabase, FilePosition, LineIndexDatabase, RootDatabase};
+use ide_db::{FilePosition, LineIndexDatabase, RootDatabase, base_db::SourceDatabase};
use std::time::{Duration, Instant};
use stdx::format_to;
-use syntax::{algo::ancestors_at_offset, ast, AstNode, TextRange};
+use syntax::{AstNode, TextRange, algo::ancestors_at_offset, ast};
// Feature: Interpret A Function, Static Or Const.
//
@@ -35,10 +35,10 @@ fn find_and_interpret(db: &RootDatabase, position: FilePosition) -> Option<(Dura
_ => return None,
};
let span_formatter = |file_id, text_range: TextRange| {
- let path = &db
- .source_root(db.file_source_root(file_id))
- .path_for_file(&file_id)
- .map(|x| x.to_string());
+ let source_root = db.file_source_root(file_id).source_root_id(db);
+ let source_root = db.source_root(source_root).source_root(db);
+
+ let path = source_root.path_for_file(&file_id).map(|x| x.to_string());
let path = path.as_deref().unwrap_or("<unknown file>");
match db.line_index(file_id).try_line_col(text_range.start()) {
Some(line_col) => format!("file://{path}:{}:{}", line_col.line + 1, line_col.col),
@@ -64,10 +64,9 @@ pub(crate) fn render_const_eval_error(
display_target: DisplayTarget,
) -> String {
let span_formatter = |file_id, text_range: TextRange| {
- let path = &db
- .source_root(db.file_source_root(file_id))
- .path_for_file(&file_id)
- .map(|x| x.to_string());
+ let source_root = db.file_source_root(file_id).source_root_id(db);
+ let source_root = db.source_root(source_root).source_root(db);
+ let path = source_root.path_for_file(&file_id).map(|x| x.to_string());
let path = path.as_deref().unwrap_or("<unknown file>");
match db.line_index(file_id).try_line_col(text_range.start()) {
Some(line_col) => format!("file://{path}:{}:{}", line_col.line + 1, line_col.col),