Never make type mismatch diagnostic stable, even when there is a fix

We show fixes now even for experimental diagnostics anyway, and it has false positives.
This commit is contained in:
Chayim Refael Friedman 2025-06-17 12:48:19 +03:00
parent 2b0c726e1b
commit b46593ece2

View file

@ -39,7 +39,7 @@ pub(crate) fn type_mismatch(ctx: &DiagnosticsContext<'_>, d: &hir::TypeMismatch<
cov_mark::hit!(type_mismatch_range_adjustment);
Some(salient_token_range)
});
let mut diag = Diagnostic::new(
Diagnostic::new(
DiagnosticCode::RustcHardError("E0308"),
format!(
"expected {}, found {}",
@ -52,11 +52,7 @@ pub(crate) fn type_mismatch(ctx: &DiagnosticsContext<'_>, d: &hir::TypeMismatch<
),
display_range,
)
.with_fixes(fixes(ctx, d));
if diag.fixes.is_some() {
diag.experimental = false;
}
diag
.with_fixes(fixes(ctx, d))
}
fn fixes(ctx: &DiagnosticsContext<'_>, d: &hir::TypeMismatch<'_>) -> Option<Vec<Assist>> {