Unnamed repository; edit this file 'description' to name the repository.
rename E0596 ref pattern diagnostic
| -rw-r--r-- | crates/hir-ty/src/infer.rs | 2 | ||||
| -rw-r--r-- | crates/hir-ty/src/infer/pat.rs | 2 | ||||
| -rw-r--r-- | crates/hir/src/diagnostics.rs | 8 | ||||
| -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.rs | 4 |
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, |