Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-diagnostics/src/handlers/json_is_not_rust.rs')
-rw-r--r--crates/ide-diagnostics/src/handlers/json_is_not_rust.rs17
1 files changed, 9 insertions, 8 deletions
diff --git a/crates/ide-diagnostics/src/handlers/json_is_not_rust.rs b/crates/ide-diagnostics/src/handlers/json_is_not_rust.rs
index f22041ebe2..ac1b599c49 100644
--- a/crates/ide-diagnostics/src/handlers/json_is_not_rust.rs
+++ b/crates/ide-diagnostics/src/handlers/json_is_not_rust.rs
@@ -4,19 +4,19 @@
use hir::{ImportPathConfig, PathResolution, Semantics};
use ide_db::text_edit::TextEdit;
use ide_db::{
+ EditionedFileId, FileRange, FxHashMap, RootDatabase,
helpers::mod_path_to_ast,
- imports::insert_use::{insert_use, ImportScope},
+ imports::insert_use::{ImportScope, insert_use},
source_change::SourceChangeBuilder,
- EditionedFileId, FileRange, FxHashMap, RootDatabase,
};
use itertools::Itertools;
use stdx::{format_to, never};
use syntax::{
- ast::{self, make},
Edition, SyntaxKind, SyntaxNode,
+ ast::{self, make},
};
-use crate::{fix, Diagnostic, DiagnosticCode, DiagnosticsConfig, Severity};
+use crate::{Diagnostic, DiagnosticCode, DiagnosticsConfig, Severity, fix};
#[derive(Default)]
struct State {
@@ -128,14 +128,15 @@ pub(crate) fn json_in_items(
state.has_serialize = serialize_resolved.is_some();
state.build_struct("Root", &it);
edit.insert(range.start(), state.result);
+ let vfs_file_id = file_id.file_id(sema.db);
acc.push(
Diagnostic::new(
DiagnosticCode::Ra("json-is-not-rust", Severity::WeakWarning),
"JSON syntax is not valid as a Rust item",
- FileRange { file_id: file_id.into(), range },
+ FileRange { file_id: vfs_file_id, range },
)
.with_fixes(Some(vec![{
- let mut scb = SourceChangeBuilder::new(file_id);
+ let mut scb = SourceChangeBuilder::new(vfs_file_id);
let scope = match import_scope {
ImportScope::File(it) => ImportScope::File(scb.make_mut(it)),
ImportScope::Module(it) => ImportScope::Module(scb.make_mut(it)),
@@ -183,7 +184,7 @@ pub(crate) fn json_in_items(
}
}
let mut sc = scb.finish();
- sc.insert_source_edit(file_id, edit.finish());
+ sc.insert_source_edit(vfs_file_id, edit.finish());
fix("convert_json_to_struct", "Convert JSON to struct", sc, range)
}])),
);
@@ -196,8 +197,8 @@ pub(crate) fn json_in_items(
#[cfg(test)]
mod tests {
use crate::{
- tests::{check_diagnostics_with_config, check_fix, check_no_fix},
DiagnosticsConfig,
+ tests::{check_diagnostics_with_config, check_fix, check_no_fix},
};
#[test]