Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-diagnostics/src/tests.rs')
-rw-r--r--crates/ide-diagnostics/src/tests.rs44
1 files changed, 39 insertions, 5 deletions
diff --git a/crates/ide-diagnostics/src/tests.rs b/crates/ide-diagnostics/src/tests.rs
index f394a491b5..b62bb5affd 100644
--- a/crates/ide-diagnostics/src/tests.rs
+++ b/crates/ide-diagnostics/src/tests.rs
@@ -1,3 +1,4 @@
+#![allow(clippy::print_stderr)]
#[cfg(not(feature = "in-rust-tree"))]
mod sourcegen;
@@ -33,13 +34,35 @@ pub(crate) fn check_fixes(ra_fixture_before: &str, ra_fixtures_after: Vec<&str>)
#[track_caller]
fn check_nth_fix(nth: usize, ra_fixture_before: &str, ra_fixture_after: &str) {
+ let mut config = DiagnosticsConfig::test_sample();
+ config.expr_fill_default = ExprFillDefaultMode::Default;
+ check_nth_fix_with_config(config, nth, ra_fixture_before, ra_fixture_after)
+}
+
+#[track_caller]
+pub(crate) fn check_fix_with_disabled(
+ ra_fixture_before: &str,
+ ra_fixture_after: &str,
+ disabled: impl Iterator<Item = String>,
+) {
+ let mut config = DiagnosticsConfig::test_sample();
+ config.expr_fill_default = ExprFillDefaultMode::Default;
+ config.disabled.extend(disabled);
+ check_nth_fix_with_config(config, 0, ra_fixture_before, ra_fixture_after)
+}
+
+#[track_caller]
+fn check_nth_fix_with_config(
+ config: DiagnosticsConfig,
+ nth: usize,
+ ra_fixture_before: &str,
+ ra_fixture_after: &str,
+) {
let after = trim_indent(ra_fixture_after);
let (db, file_position) = RootDatabase::with_position(ra_fixture_before);
- let mut conf = DiagnosticsConfig::test_sample();
- conf.expr_fill_default = ExprFillDefaultMode::Default;
let diagnostic =
- super::diagnostics(&db, &conf, &AssistResolveStrategy::All, file_position.file_id)
+ super::diagnostics(&db, &config, &AssistResolveStrategy::All, file_position.file_id)
.pop()
.expect("no diagnostics");
let fix = &diagnostic
@@ -85,7 +108,17 @@ pub(crate) fn check_no_fix(ra_fixture: &str) {
#[track_caller]
pub(crate) fn check_diagnostics(ra_fixture: &str) {
let mut config = DiagnosticsConfig::test_sample();
- config.disabled.insert("inactive-code".to_string());
+ config.disabled.insert("inactive-code".to_owned());
+ check_diagnostics_with_config(config, ra_fixture)
+}
+
+#[track_caller]
+pub(crate) fn check_diagnostics_with_disabled(
+ ra_fixture: &str,
+ disabled: impl Iterator<Item = String>,
+) {
+ let mut config = DiagnosticsConfig::test_sample();
+ config.disabled.extend(disabled);
check_diagnostics_with_config(config, ra_fixture)
}
@@ -174,7 +207,8 @@ fn minicore_smoke_test() {
let source = minicore.source_code();
let mut config = DiagnosticsConfig::test_sample();
// This should be ignored since we conditionally remove code which creates single item use with braces
- config.disabled.insert("unused_braces".to_string());
+ config.disabled.insert("unused_braces".to_owned());
+ config.disabled.insert("unused_variables".to_owned());
check_diagnostics_with_config(config, &source);
}