Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/hir-ty/src/infer.rs2
-rw-r--r--crates/hir-ty/src/infer/pat.rs2
-rw-r--r--crates/hir/src/diagnostics.rs8
-rw-r--r--crates/ide-diagnostics/src/handlers/mut_ref_in_imm_ref_pat.rs (renamed from crates/ide-diagnostics/src/handlers/cannot_borrow_as_mutable.rs)8
-rw-r--r--crates/ide-diagnostics/src/lib.rs4
5 files changed, 12 insertions, 12 deletions
diff --git a/crates/hir-ty/src/infer.rs b/crates/hir-ty/src/infer.rs
index 6179d8dcf8..e6c821457c 100644
--- a/crates/hir-ty/src/infer.rs
+++ b/crates/hir-ty/src/infer.rs
@@ -405,7 +405,7 @@ pub enum InferenceDiagnostic {
expr: ExprId,
found: StoredTy,
},
- CannotBorrowAsMutable {
+ MutRefInImmRefPat {
#[type_visitable(ignore)]
pat: PatId,
},
diff --git a/crates/hir-ty/src/infer/pat.rs b/crates/hir-ty/src/infer/pat.rs
index 543de847cd..25f33e87e7 100644
--- a/crates/hir-ty/src/infer/pat.rs
+++ b/crates/hir-ty/src/infer/pat.rs
@@ -916,7 +916,7 @@ impl<'a, 'db> InferenceContext<'a, 'db> {
if matches!(bm.0, ByRef::Yes(Mutability::Mut))
&& let MutblCap::WeaklyNot = pat_info.max_ref_mutbl
{
- self.push_diagnostic(InferenceDiagnostic::CannotBorrowAsMutable { pat });
+ self.push_diagnostic(InferenceDiagnostic::MutRefInImmRefPat { pat });
}
// ...and store it in a side table:
diff --git a/crates/hir/src/diagnostics.rs b/crates/hir/src/diagnostics.rs
index edd24442c4..9367fcf789 100644
--- a/crates/hir/src/diagnostics.rs
+++ b/crates/hir/src/diagnostics.rs
@@ -104,7 +104,6 @@ diagnostics![AnyDiagnostic<'db> ->
AwaitOutsideOfAsync,
BreakOutsideOfLoop,
CannotBeDereferenced<'db>,
- CannotBorrowAsMutable,
CannotImplicitlyDerefTraitObject<'db>,
CannotIndexInto<'db>,
CastToUnsized<'db>,
@@ -134,6 +133,7 @@ diagnostics![AnyDiagnostic<'db> ->
MissingMatchArms,
MissingUnsafe,
MovedOutOfRef<'db>,
+ MutRefInImmRefPat,
MutableRefBinding,
NeedMut,
NonExhaustiveLet,
@@ -337,7 +337,7 @@ pub struct CannotBeDereferenced<'db> {
}
#[derive(Debug)]
-pub struct CannotBorrowAsMutable {
+pub struct MutRefInImmRefPat {
pub pat: InFile<ExprOrPatPtr>,
}
@@ -986,9 +986,9 @@ impl<'db> AnyDiagnostic<'db> {
let expr = expr_syntax(*expr)?;
CannotBeDereferenced { expr, found: new_ty(found.as_ref()) }.into()
}
- InferenceDiagnostic::CannotBorrowAsMutable { pat } => {
+ InferenceDiagnostic::MutRefInImmRefPat { pat } => {
let pat = pat_syntax(*pat)?.map(Into::into);
- CannotBorrowAsMutable { pat }.into()
+ MutRefInImmRefPat { pat }.into()
}
InferenceDiagnostic::CannotImplicitlyDerefTraitObject { pat, found } => {
let pat = pat_syntax(*pat)?.map(Into::into);
diff --git a/crates/ide-diagnostics/src/handlers/cannot_borrow_as_mutable.rs b/crates/ide-diagnostics/src/handlers/mut_ref_in_imm_ref_pat.rs
index f1ae2c4203..d3c83be359 100644
--- a/crates/ide-diagnostics/src/handlers/cannot_borrow_as_mutable.rs
+++ b/crates/ide-diagnostics/src/handlers/mut_ref_in_imm_ref_pat.rs
@@ -1,12 +1,12 @@
use crate::{Diagnostic, DiagnosticCode, DiagnosticsContext};
-// Diagnostic: cannot-borrow-as-mutable
+// Diagnostic: mut-ref-in-imm-ref-pat
//
// This diagnostic is triggered when a binding tries to mutably borrow through
// an `&` pattern.
-pub(crate) fn cannot_borrow_as_mutable(
+pub(crate) fn mut_ref_in_imm_ref_pat(
ctx: &DiagnosticsContext<'_, '_>,
- d: &hir::CannotBorrowAsMutable,
+ d: &hir::MutRefInImmRefPat,
) -> Diagnostic {
Diagnostic::new_with_syntax_node_ptr(
ctx,
@@ -22,7 +22,7 @@ mod tests {
use crate::tests::check_diagnostics;
#[test]
- fn cannot_borrow_as_mutable_inside_shared_ref_pattern() {
+ fn mut_ref_in_imm_ref_pat() {
check_diagnostics(
r#"
#![feature(ref_pat_eat_one_layer_2024)]
diff --git a/crates/ide-diagnostics/src/lib.rs b/crates/ide-diagnostics/src/lib.rs
index 18adc3e1f6..e43594a814 100644
--- a/crates/ide-diagnostics/src/lib.rs
+++ b/crates/ide-diagnostics/src/lib.rs
@@ -34,7 +34,6 @@ mod handlers {
pub(crate) mod bad_rtn;
pub(crate) mod break_outside_of_loop;
pub(crate) mod cannot_be_dereferenced;
- pub(crate) mod cannot_borrow_as_mutable;
pub(crate) mod cannot_implicitly_deref_trait_object;
pub(crate) mod cannot_index_into;
pub(crate) mod duplicate_field;
@@ -65,6 +64,7 @@ mod handlers {
pub(crate) mod missing_match_arms;
pub(crate) mod missing_unsafe;
pub(crate) mod moved_out_of_ref;
+ pub(crate) mod mut_ref_in_imm_ref_pat;
pub(crate) mod mutability_errors;
pub(crate) mod mutable_ref;
pub(crate) mod no_such_field;
@@ -438,7 +438,6 @@ pub fn semantic_diagnostics(
let d = match diag {
AnyDiagnostic::AwaitOutsideOfAsync(d) => handlers::await_outside_of_async::await_outside_of_async(&ctx, &d),
AnyDiagnostic::CannotBeDereferenced(d) => handlers::cannot_be_dereferenced::cannot_be_dereferenced(&ctx, &d),
- AnyDiagnostic::CannotBorrowAsMutable(d) => handlers::cannot_borrow_as_mutable::cannot_borrow_as_mutable(&ctx, &d),
AnyDiagnostic::CannotImplicitlyDerefTraitObject(d) => handlers::cannot_implicitly_deref_trait_object::cannot_implicitly_deref_trait_object(&ctx, &d),
AnyDiagnostic::CannotIndexInto(d) => handlers::cannot_index_into::cannot_index_into(&ctx, &d),
AnyDiagnostic::CastToUnsized(d) => handlers::invalid_cast::cast_to_unsized(&ctx, &d),
@@ -479,6 +478,7 @@ pub fn semantic_diagnostics(
AnyDiagnostic::MissingMatchArms(d) => handlers::missing_match_arms::missing_match_arms(&ctx, &d),
AnyDiagnostic::MissingUnsafe(d) => handlers::missing_unsafe::missing_unsafe(&ctx, &d),
AnyDiagnostic::MovedOutOfRef(d) => handlers::moved_out_of_ref::moved_out_of_ref(&ctx, &d),
+ AnyDiagnostic::MutRefInImmRefPat(d) => handlers::mut_ref_in_imm_ref_pat::mut_ref_in_imm_ref_pat(&ctx, &d),
AnyDiagnostic::MutableRefBinding(d) => handlers::mutable_ref::mutable_ref_binding(&ctx, &d),
AnyDiagnostic::NeedMut(d) => match handlers::mutability_errors::need_mut(&ctx, &d) {
Some(it) => it,