From 93d56ce32ecd989bbbd161a703cdc1921e338de6 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Sun, 14 Jun 2026 10:52:57 +0200 Subject: [PATCH 1/2] Rename `rustc_trait_selection/src/errors.rs` into `rustc_trait_selection/src/diagnostics.rs` --- .../src/diagnostics/opaque_types.rs | 2 +- .../rustc_lint/src/impl_trait_overcaptures.rs | 2 +- .../src/{errors.rs => diagnostics.rs} | 0 .../note_and_explain.rs | 0 .../src/error_reporting/infer/mod.rs | 2 +- .../error_reporting/infer/need_type_info.rs | 4 ++-- .../nice_region_error/different_lifetimes.rs | 2 +- .../mismatched_static_lifetime.rs | 4 ++-- .../nice_region_error/named_anon_conflict.rs | 2 +- .../nice_region_error/placeholder_error.rs | 4 ++-- .../nice_region_error/placeholder_relation.rs | 2 +- .../nice_region_error/static_impl_trait.rs | 2 +- .../trait_impl_difference.rs | 2 +- .../src/error_reporting/infer/region.rs | 19 ++++++++++++------- .../src/error_reporting/infer/suggest.rs | 6 +++--- .../traits/fulfillment_errors.rs | 4 +++- .../src/error_reporting/traits/suggestions.rs | 6 +++--- compiler/rustc_trait_selection/src/lib.rs | 2 +- .../rustc_trait_selection/src/opaque_types.rs | 2 +- .../src/traits/auto_trait.rs | 2 +- .../src/traits/project.rs | 2 +- .../src/traits/specialize/mod.rs | 2 +- 22 files changed, 40 insertions(+), 33 deletions(-) rename compiler/rustc_trait_selection/src/{errors.rs => diagnostics.rs} (100%) rename compiler/rustc_trait_selection/src/{errors => diagnostics}/note_and_explain.rs (100%) diff --git a/compiler/rustc_borrowck/src/diagnostics/opaque_types.rs b/compiler/rustc_borrowck/src/diagnostics/opaque_types.rs index 259330611c483..590c2c9c3965b 100644 --- a/compiler/rustc_borrowck/src/diagnostics/opaque_types.rs +++ b/compiler/rustc_borrowck/src/diagnostics/opaque_types.rs @@ -12,8 +12,8 @@ use rustc_middle::ty::{ Unnormalized, }; use rustc_span::Span; +use rustc_trait_selection::diagnostics::impl_trait_overcapture_suggestion; use rustc_trait_selection::error_reporting::infer::region::unexpected_hidden_region_diagnostic; -use rustc_trait_selection::errors::impl_trait_overcapture_suggestion; use crate::MirBorrowckCtxt; use crate::borrow_set::BorrowData; diff --git a/compiler/rustc_lint/src/impl_trait_overcaptures.rs b/compiler/rustc_lint/src/impl_trait_overcaptures.rs index 76d55030b1312..842a9be7093a7 100644 --- a/compiler/rustc_lint/src/impl_trait_overcaptures.rs +++ b/compiler/rustc_lint/src/impl_trait_overcaptures.rs @@ -23,7 +23,7 @@ use rustc_middle::{bug, span_bug}; use rustc_session::lint::fcw; use rustc_session::{declare_lint, declare_lint_pass}; use rustc_span::{Span, Symbol}; -use rustc_trait_selection::errors::{ +use rustc_trait_selection::diagnostics::{ AddPreciseCapturingForOvercapture, impl_trait_overcapture_suggestion, }; use rustc_trait_selection::regions::OutlivesEnvironmentBuildExt; diff --git a/compiler/rustc_trait_selection/src/errors.rs b/compiler/rustc_trait_selection/src/diagnostics.rs similarity index 100% rename from compiler/rustc_trait_selection/src/errors.rs rename to compiler/rustc_trait_selection/src/diagnostics.rs diff --git a/compiler/rustc_trait_selection/src/errors/note_and_explain.rs b/compiler/rustc_trait_selection/src/diagnostics/note_and_explain.rs similarity index 100% rename from compiler/rustc_trait_selection/src/errors/note_and_explain.rs rename to compiler/rustc_trait_selection/src/diagnostics/note_and_explain.rs diff --git a/compiler/rustc_trait_selection/src/error_reporting/infer/mod.rs b/compiler/rustc_trait_selection/src/error_reporting/infer/mod.rs index 8ecb675243503..36c46fbb437ed 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/infer/mod.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/infer/mod.rs @@ -70,11 +70,11 @@ use rustc_middle::ty::{ use rustc_span::{BytePos, DUMMY_SP, DesugaringKind, Pos, Span, sym}; use tracing::{debug, instrument}; +use crate::diagnostics::{ObligationCauseFailureCode, TypeErrorAdditionalDiags}; use crate::error_reporting::TypeErrCtxt; use crate::error_reporting::traits::ambiguity::{ CandidateSource, compute_applicable_impls_for_diagnostics, }; -use crate::errors::{ObligationCauseFailureCode, TypeErrorAdditionalDiags}; use crate::infer; use crate::infer::relate::{self, RelateResult, TypeRelation}; use crate::infer::{InferCtxt, InferCtxtExt as _, TypeTrace, ValuePairs}; diff --git a/compiler/rustc_trait_selection/src/error_reporting/infer/need_type_info.rs b/compiler/rustc_trait_selection/src/error_reporting/infer/need_type_info.rs index e075be19693cb..2aea9e5bcf369 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/infer/need_type_info.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/infer/need_type_info.rs @@ -23,11 +23,11 @@ use rustc_span::{BytePos, DUMMY_SP, Ident, Span, sym}; use tracing::{debug, instrument, warn}; use super::nice_region_error::placeholder_error::Highlighted; -use crate::error_reporting::TypeErrCtxt; -use crate::errors::{ +use crate::diagnostics::{ AmbiguousImpl, AmbiguousReturn, AnnotationRequired, InferenceBadError, SourceKindMultiSuggestion, SourceKindSubdiag, }; +use crate::error_reporting::TypeErrCtxt; use crate::infer::{InferCtxt, TyOrConstInferVar}; pub enum TypeAnnotationNeeded { diff --git a/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/different_lifetimes.rs b/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/different_lifetimes.rs index 9cb58a9d45bd7..e315f53cad7fb 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/different_lifetimes.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/different_lifetimes.rs @@ -7,10 +7,10 @@ use rustc_hir::def_id::LocalDefId; use rustc_middle::ty::{Region, TyCtxt}; use tracing::debug; +use crate::diagnostics::{AddLifetimeParamsSuggestion, LifetimeMismatch, LifetimeMismatchLabels}; use crate::error_reporting::infer::nice_region_error::NiceRegionError; use crate::error_reporting::infer::nice_region_error::find_anon_type::find_anon_type; use crate::error_reporting::infer::nice_region_error::util::AnonymousParamInfo; -use crate::errors::{AddLifetimeParamsSuggestion, LifetimeMismatch, LifetimeMismatchLabels}; use crate::infer::{RegionResolutionError, SubregionOrigin}; impl<'a, 'tcx> NiceRegionError<'a, 'tcx> { diff --git a/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/mismatched_static_lifetime.rs b/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/mismatched_static_lifetime.rs index 4422980051afb..e8a9e929d6a5d 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/mismatched_static_lifetime.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/mismatched_static_lifetime.rs @@ -9,11 +9,11 @@ use rustc_middle::bug; use rustc_middle::ty::TypeVisitor; use tracing::debug; -use crate::error_reporting::infer::nice_region_error::NiceRegionError; -use crate::errors::{ +use crate::diagnostics::{ DoesNotOutliveStaticFromImpl, ImplicitStaticLifetimeSubdiag, IntroducesStaticBecauseUnmetLifetimeReq, MismatchedStaticLifetime, note_and_explain, }; +use crate::error_reporting::infer::nice_region_error::NiceRegionError; use crate::infer::{RegionResolutionError, SubregionOrigin, TypeTrace}; use crate::traits::ObligationCauseCode; diff --git a/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/named_anon_conflict.rs b/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/named_anon_conflict.rs index ad8cc5d279af1..f555f0435dd8f 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/named_anon_conflict.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/named_anon_conflict.rs @@ -5,9 +5,9 @@ use rustc_errors::Diag; use rustc_middle::ty; use tracing::debug; +use crate::diagnostics::ExplicitLifetimeRequired; use crate::error_reporting::infer::nice_region_error::NiceRegionError; use crate::error_reporting::infer::nice_region_error::find_anon_type::find_anon_type; -use crate::errors::ExplicitLifetimeRequired; impl<'a, 'tcx> NiceRegionError<'a, 'tcx> { /// When given a `ConcreteFailure` for a function with parameters containing a named region and diff --git a/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/placeholder_error.rs b/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/placeholder_error.rs index fdbf4cf228de9..31bd3b32e76d8 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/placeholder_error.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/placeholder_error.rs @@ -10,11 +10,11 @@ use rustc_middle::ty::print::{FmtPrinter, Print, PrintTraitRefExt as _, RegionHi use rustc_middle::ty::{self, GenericArgsRef, RePlaceholder, Region, TyCtxt}; use tracing::{debug, instrument}; -use crate::error_reporting::infer::nice_region_error::NiceRegionError; -use crate::errors::{ +use crate::diagnostics::{ ActualImplExpectedKind, ActualImplExpectedLifetimeKind, ActualImplExplNotes, TraitPlaceholderMismatch, TyOrSig, }; +use crate::error_reporting::infer::nice_region_error::NiceRegionError; use crate::infer::{RegionResolutionError, SubregionOrigin, TypeTrace, ValuePairs}; use crate::traits::{ObligationCause, ObligationCauseCode}; diff --git a/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/placeholder_relation.rs b/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/placeholder_relation.rs index 05a1e3fe95dd9..97101fe8f6884 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/placeholder_relation.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/placeholder_relation.rs @@ -3,8 +3,8 @@ use rustc_errors::Diag; use rustc_middle::bug; use rustc_middle::ty::{self, RePlaceholder, Region}; +use crate::diagnostics::PlaceholderRelationLfNotSatisfied; use crate::error_reporting::infer::nice_region_error::NiceRegionError; -use crate::errors::PlaceholderRelationLfNotSatisfied; use crate::infer::{RegionResolutionError, SubregionOrigin}; impl<'tcx> NiceRegionError<'_, 'tcx> { diff --git a/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/static_impl_trait.rs b/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/static_impl_trait.rs index b227cd065eab9..dfa0d4a3bfd48 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/static_impl_trait.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/static_impl_trait.rs @@ -13,8 +13,8 @@ use rustc_span::def_id::LocalDefId; use rustc_span::{Ident, Span}; use tracing::debug; +use crate::diagnostics::ButNeedsToSatisfy; use crate::error_reporting::infer::nice_region_error::NiceRegionError; -use crate::errors::ButNeedsToSatisfy; use crate::infer::{RegionResolutionError, SubregionOrigin}; impl<'a, 'tcx> NiceRegionError<'a, 'tcx> { diff --git a/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/trait_impl_difference.rs b/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/trait_impl_difference.rs index 7e6f566e242a3..eb0b9a0234275 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/trait_impl_difference.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/infer/nice_region_error/trait_impl_difference.rs @@ -14,9 +14,9 @@ use rustc_middle::ty::{self, TyCtxt, TypeVisitable}; use rustc_span::{Ident, Span}; use tracing::debug; +use crate::diagnostics::{ConsiderBorrowingParamHelp, TraitImplDiff}; use crate::error_reporting::infer::nice_region_error::NiceRegionError; use crate::error_reporting::infer::nice_region_error::placeholder_error::Highlighted; -use crate::errors::{ConsiderBorrowingParamHelp, TraitImplDiff}; use crate::infer::{RegionResolutionError, ValuePairs}; impl<'a, 'tcx> NiceRegionError<'a, 'tcx> { diff --git a/compiler/rustc_trait_selection/src/error_reporting/infer/region.rs b/compiler/rustc_trait_selection/src/error_reporting/infer/region.rs index 9d2eb42496e2f..f6ef59918af0c 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/infer/region.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/infer/region.rs @@ -19,12 +19,12 @@ use tracing::{debug, instrument}; use super::ObligationCauseAsDiagArg; use super::nice_region_error::find_anon_type; -use crate::error_reporting::TypeErrCtxt; -use crate::error_reporting::infer::ObligationCauseExt; -use crate::errors::{ +use crate::diagnostics::{ self, FulfillReqLifetime, LfBoundNotSatisfied, OutlivesBound, OutlivesContent, RefLongerThanData, RegionOriginNote, WhereClauseSuggestions, note_and_explain, }; +use crate::error_reporting::TypeErrCtxt; +use crate::error_reporting::infer::ObligationCauseExt; use crate::infer::region_constraints::GenericKind; use crate::infer::{ BoundRegionConversionTime, InferCtxt, RegionResolutionError, RegionVariableOrigin, @@ -1276,7 +1276,7 @@ pub fn unexpected_hidden_region_diagnostic<'a, 'tcx>( opaque_ty_key: ty::OpaqueTypeKey<'tcx>, ) -> Diag<'a> { let tcx = infcx.tcx; - let mut err = infcx.dcx().create_err(errors::OpaqueCapturesLifetime { + let mut err = infcx.dcx().create_err(diagnostics::OpaqueCapturesLifetime { span, opaque_ty: Ty::new_opaque(tcx, opaque_ty_key.def_id.to_def_id(), opaque_ty_key.args), opaque_ty_span: tcx.def_span(opaque_ty_key.def_id), @@ -1389,7 +1389,12 @@ fn suggest_precise_capturing<'tcx>( (span.with_hi(span.hi() - BytePos(1)).shrink_to_hi(), "", "") }; - diag.subdiagnostic(errors::AddPreciseCapturing::Existing { span, new_lifetime, pre, post }); + diag.subdiagnostic(diagnostics::AddPreciseCapturing::Existing { + span, + new_lifetime, + pre, + post, + }); } else { let mut captured_lifetimes = FxIndexSet::default(); let mut captured_non_lifetimes = FxIndexSet::default(); @@ -1437,7 +1442,7 @@ fn suggest_precise_capturing<'tcx>( .collect::>() .join(", "); - diag.subdiagnostic(errors::AddPreciseCapturing::New { + diag.subdiagnostic(diagnostics::AddPreciseCapturing::New { span: tcx.def_span(opaque_def_id).shrink_to_hi(), new_lifetime, concatenated_bounds, @@ -1504,7 +1509,7 @@ fn suggest_precise_capturing<'tcx>( format!(" + use<{concatenated_bounds}>"), )); - diag.subdiagnostic(errors::AddPreciseCapturingAndParams { + diag.subdiagnostic(diagnostics::AddPreciseCapturingAndParams { suggs, new_lifetime, apit_spans, diff --git a/compiler/rustc_trait_selection/src/error_reporting/infer/suggest.rs b/compiler/rustc_trait_selection/src/error_reporting/infer/suggest.rs index 224be68bbcd10..72982a69f9275 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/infer/suggest.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/infer/suggest.rs @@ -17,13 +17,13 @@ use rustc_middle::ty::{ use rustc_span::{Span, sym}; use tracing::debug; -use crate::error_reporting::TypeErrCtxt; -use crate::error_reporting::infer::hir::Path; -use crate::errors::{ +use crate::diagnostics::{ ConsiderAddingAwait, FnConsiderCasting, FnConsiderCastingBoth, FnItemsAreDistinct, FnUniqTypes, FunctionPointerSuggestion, SuggestAccessingField, SuggestRemoveSemiOrReturnBinding, SuggestTuplePatternMany, SuggestTuplePatternOne, TypeErrorAdditionalDiags, }; +use crate::error_reporting::TypeErrCtxt; +use crate::error_reporting::infer::hir::Path; #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] enum StatementAsExpression { diff --git a/compiler/rustc_trait_selection/src/error_reporting/traits/fulfillment_errors.rs b/compiler/rustc_trait_selection/src/error_reporting/traits/fulfillment_errors.rs index 051604c94c445..aa414dc6fedb6 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/traits/fulfillment_errors.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/traits/fulfillment_errors.rs @@ -39,10 +39,12 @@ use tracing::{debug, instrument}; use super::suggestions::get_explanation_based_on_obligation; use super::{ArgKind, CandidateSimilarity, GetSafeTransmuteErrorAndReason, ImplCandidate}; +use crate::diagnostics::{ + ClosureFnMutLabel, ClosureFnOnceLabel, ClosureKindMismatch, CoroClosureNotFn, +}; use crate::error_reporting::TypeErrCtxt; use crate::error_reporting::infer::TyCategory; use crate::error_reporting::traits::report_dyn_incompatibility; -use crate::errors::{ClosureFnMutLabel, ClosureFnOnceLabel, ClosureKindMismatch, CoroClosureNotFn}; use crate::infer::{self, InferCtxt, InferCtxtExt as _}; use crate::traits::query::evaluate_obligation::InferCtxtExt as _; use crate::traits::{ diff --git a/compiler/rustc_trait_selection/src/error_reporting/traits/suggestions.rs b/compiler/rustc_trait_selection/src/error_reporting/traits/suggestions.rs index 6594fac09af76..0849215c13404 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/traits/suggestions.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/traits/suggestions.rs @@ -48,8 +48,8 @@ use super::{ DefIdOrName, FindExprBySpan, ImplCandidate, Obligation, ObligationCause, ObligationCauseCode, PredicateObligation, }; +use crate::diagnostics; use crate::error_reporting::TypeErrCtxt; -use crate::errors; use crate::infer::InferCtxtExt as _; use crate::traits::query::evaluate_obligation::InferCtxtExt as _; use crate::traits::{ImplDerivedCause, NormalizeExt, ObligationCtxt, SelectionContext}; @@ -6119,11 +6119,11 @@ fn hint_missing_borrow<'tcx>( } if !to_borrow.is_empty() { - err.subdiagnostic(errors::AdjustSignatureBorrow::Borrow { to_borrow }); + err.subdiagnostic(diagnostics::AdjustSignatureBorrow::Borrow { to_borrow }); } if !remove_borrow.is_empty() { - err.subdiagnostic(errors::AdjustSignatureBorrow::RemoveBorrow { remove_borrow }); + err.subdiagnostic(diagnostics::AdjustSignatureBorrow::RemoveBorrow { remove_borrow }); } } diff --git a/compiler/rustc_trait_selection/src/lib.rs b/compiler/rustc_trait_selection/src/lib.rs index c1a0dcf5aa4c2..9f1bfc018f3a2 100644 --- a/compiler/rustc_trait_selection/src/lib.rs +++ b/compiler/rustc_trait_selection/src/lib.rs @@ -25,8 +25,8 @@ #![recursion_limit = "512"] // For rustdoc // tidy-alphabetical-end +pub mod diagnostics; pub mod error_reporting; -pub mod errors; pub mod infer; pub mod opaque_types; pub mod regions; diff --git a/compiler/rustc_trait_selection/src/opaque_types.rs b/compiler/rustc_trait_selection/src/opaque_types.rs index 28b9bf21eee59..9606efe4a3d8b 100644 --- a/compiler/rustc_trait_selection/src/opaque_types.rs +++ b/compiler/rustc_trait_selection/src/opaque_types.rs @@ -9,7 +9,7 @@ use rustc_middle::ty::{ }; use rustc_span::{ErrorGuaranteed, Span}; -use crate::errors::NonGenericOpaqueTypeParam; +use crate::diagnostics::NonGenericOpaqueTypeParam; use crate::regions::OutlivesEnvironmentBuildExt; use crate::traits::ObligationCtxt; diff --git a/compiler/rustc_trait_selection/src/traits/auto_trait.rs b/compiler/rustc_trait_selection/src/traits/auto_trait.rs index 3a58dbaf1ec8d..5331773e58bed 100644 --- a/compiler/rustc_trait_selection/src/traits/auto_trait.rs +++ b/compiler/rustc_trait_selection/src/traits/auto_trait.rs @@ -13,7 +13,7 @@ use rustc_span::DUMMY_SP; use tracing::debug; use super::*; -use crate::errors::UnableToConstructConstantValue; +use crate::diagnostics::UnableToConstructConstantValue; use crate::infer::TypeFreshener; use crate::infer::region_constraints::{ConstraintKind, RegionConstraintData}; use crate::regions::OutlivesEnvironmentBuildExt; diff --git a/compiler/rustc_trait_selection/src/traits/project.rs b/compiler/rustc_trait_selection/src/traits/project.rs index cc802a6342807..e267d18515a40 100644 --- a/compiler/rustc_trait_selection/src/traits/project.rs +++ b/compiler/rustc_trait_selection/src/traits/project.rs @@ -25,7 +25,7 @@ use super::{ PredicateObligation, ProjectionCacheEntry, ProjectionCacheKey, Selection, SelectionContext, SelectionError, specialization_graph, translate_args, util, }; -use crate::errors::InherentProjectionNormalizationOverflow; +use crate::diagnostics::InherentProjectionNormalizationOverflow; use crate::infer::{BoundRegionConversionTime, InferOk}; use crate::traits::normalize::{normalize_with_depth, normalize_with_depth_to}; use crate::traits::query::evaluate_obligation::InferCtxtExt as _; diff --git a/compiler/rustc_trait_selection/src/traits/specialize/mod.rs b/compiler/rustc_trait_selection/src/traits/specialize/mod.rs index 164d01a3285e6..506d38c17bc9a 100644 --- a/compiler/rustc_trait_selection/src/traits/specialize/mod.rs +++ b/compiler/rustc_trait_selection/src/traits/specialize/mod.rs @@ -28,8 +28,8 @@ use rustc_span::{DUMMY_SP, ErrorGuaranteed, Span, sym}; use specialization_graph::GraphExt; use tracing::{debug, instrument}; +use crate::diagnostics::NegativePositiveConflict; use crate::error_reporting::traits::to_pretty_impl_header; -use crate::errors::NegativePositiveConflict; use crate::infer::{InferCtxt, TyCtxtInferExt}; use crate::traits::select::IntercrateAmbiguityCause; use crate::traits::{ From bbd0e834c8db8f782b6a7e5d03a581cedfc60022 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Sun, 14 Jun 2026 10:59:40 +0200 Subject: [PATCH 2/2] Rename `rustc_mir_transform/src/errors.rs` into `rustc_mir_transform/src/diagnostics.rs` --- .../src/check_call_recursion.rs | 2 +- .../src/check_const_item_mutation.rs | 6 +-- .../rustc_mir_transform/src/check_inline.rs | 2 +- .../src/check_packed_ref.rs | 4 +- .../src/coroutine/layout.rs | 2 +- .../src/{errors.rs => diagnostics.rs} | 0 .../src/ffi_unwind_calls.rs | 6 +-- .../src/function_item_references.rs | 4 +- compiler/rustc_mir_transform/src/inline.rs | 4 +- .../src/known_panics_lint.rs | 2 +- compiler/rustc_mir_transform/src/lib.rs | 2 +- .../src/lint_and_remove_uninhabited.rs | 2 +- compiler/rustc_mir_transform/src/liveness.rs | 40 +++++++++---------- .../rustc_mir_transform/src/pass_manager.rs | 6 +-- 14 files changed, 41 insertions(+), 41 deletions(-) rename compiler/rustc_mir_transform/src/{errors.rs => diagnostics.rs} (100%) diff --git a/compiler/rustc_mir_transform/src/check_call_recursion.rs b/compiler/rustc_mir_transform/src/check_call_recursion.rs index b47e7bd168678..216ada600ce34 100644 --- a/compiler/rustc_mir_transform/src/check_call_recursion.rs +++ b/compiler/rustc_mir_transform/src/check_call_recursion.rs @@ -10,7 +10,7 @@ use rustc_middle::ty::{self, GenericArg, GenericArgs, Instance, Ty, TyCtxt, Unno use rustc_session::lint::builtin::UNCONDITIONAL_RECURSION; use rustc_span::Span; -use crate::errors::UnconditionalRecursion; +use crate::diagnostics::UnconditionalRecursion; use crate::pass_manager::MirLint; pub(super) struct CheckCallRecursion; diff --git a/compiler/rustc_mir_transform/src/check_const_item_mutation.rs b/compiler/rustc_mir_transform/src/check_const_item_mutation.rs index 8545704cb6a34..f1876bafbf79b 100644 --- a/compiler/rustc_mir_transform/src/check_const_item_mutation.rs +++ b/compiler/rustc_mir_transform/src/check_const_item_mutation.rs @@ -6,7 +6,7 @@ use rustc_session::lint::builtin::CONST_ITEM_MUTATION; use rustc_span::Span; use rustc_span::def_id::DefId; -use crate::errors; +use crate::diagnostics; pub(super) struct CheckConstItemMutation; @@ -108,7 +108,7 @@ impl<'tcx> Visitor<'tcx> for ConstMutationChecker<'_, 'tcx> { CONST_ITEM_MUTATION, lint_root, span, - errors::ConstMutate::Modify { konst: item }, + diagnostics::ConstMutate::Modify { konst: item }, ); } @@ -154,7 +154,7 @@ impl<'tcx> Visitor<'tcx> for ConstMutationChecker<'_, 'tcx> { CONST_ITEM_MUTATION, lint_root, span, - errors::ConstMutate::MutBorrow { method_call, konst: item }, + diagnostics::ConstMutate::MutBorrow { method_call, konst: item }, ); } } diff --git a/compiler/rustc_mir_transform/src/check_inline.rs b/compiler/rustc_mir_transform/src/check_inline.rs index 50ef94f623dc5..c267fb171fba5 100644 --- a/compiler/rustc_mir_transform/src/check_inline.rs +++ b/compiler/rustc_mir_transform/src/check_inline.rs @@ -26,7 +26,7 @@ impl<'tcx> MirLint<'tcx> for CheckForceInline { if let Err(reason) = is_inline_valid_on_fn(tcx, def_id).and_then(|_| is_inline_valid_on_body(tcx, body)) { - tcx.dcx().emit_err(crate::errors::InvalidForceInline { + tcx.dcx().emit_err(crate::diagnostics::InvalidForceInline { attr_span, callee_span: tcx.def_span(def_id), callee: tcx.def_path_str(def_id), diff --git a/compiler/rustc_mir_transform/src/check_packed_ref.rs b/compiler/rustc_mir_transform/src/check_packed_ref.rs index 9ce244a00fcec..fd87587b8f9ce 100644 --- a/compiler/rustc_mir_transform/src/check_packed_ref.rs +++ b/compiler/rustc_mir_transform/src/check_packed_ref.rs @@ -3,7 +3,7 @@ use rustc_middle::mir::*; use rustc_middle::span_bug; use rustc_middle::ty::{self, TyCtxt}; -use crate::{errors, util}; +use crate::{diagnostics, util}; pub(super) struct CheckPackedRef; @@ -50,7 +50,7 @@ impl<'tcx> Visitor<'tcx> for PackedRefChecker<'_, 'tcx> { // shouldn't do. span_bug!(self.source_info.span, "builtin derive created an unaligned reference"); } else { - self.tcx.dcx().emit_err(errors::UnalignedPackedRef { + self.tcx.dcx().emit_err(diagnostics::UnalignedPackedRef { span: self.source_info.span, ty_descr: adt.descr(), align: pack.bytes(), diff --git a/compiler/rustc_mir_transform/src/coroutine/layout.rs b/compiler/rustc_mir_transform/src/coroutine/layout.rs index be8402f082e62..7262d44dcab99 100644 --- a/compiler/rustc_mir_transform/src/coroutine/layout.rs +++ b/compiler/rustc_mir_transform/src/coroutine/layout.rs @@ -46,7 +46,7 @@ use rustc_trait_selection::infer::TyCtxtInferExt as _; use rustc_trait_selection::traits::{ObligationCause, ObligationCauseCode, ObligationCtxt}; use tracing::{debug, instrument, trace}; -use crate::errors::{MustNotSupend, MustNotSuspendReason}; +use crate::diagnostics::{MustNotSupend, MustNotSuspendReason}; const SELF_ARG: Local = Local::arg(0); diff --git a/compiler/rustc_mir_transform/src/errors.rs b/compiler/rustc_mir_transform/src/diagnostics.rs similarity index 100% rename from compiler/rustc_mir_transform/src/errors.rs rename to compiler/rustc_mir_transform/src/diagnostics.rs diff --git a/compiler/rustc_mir_transform/src/ffi_unwind_calls.rs b/compiler/rustc_mir_transform/src/ffi_unwind_calls.rs index 06e7bf974b515..1d90d282a62b9 100644 --- a/compiler/rustc_mir_transform/src/ffi_unwind_calls.rs +++ b/compiler/rustc_mir_transform/src/ffi_unwind_calls.rs @@ -9,7 +9,7 @@ use rustc_session::lint::builtin::FFI_UNWIND_CALLS; use rustc_target::spec::PanicStrategy; use tracing::debug; -use crate::errors; +use crate::diagnostics; // Check if the body of this def_id can possibly leak a foreign unwind into Rust code. fn has_ffi_unwind_calls(tcx: TyCtxt<'_>, local_def_id: LocalDefId) -> bool { @@ -67,7 +67,7 @@ fn has_ffi_unwind_calls(tcx: TyCtxt<'_>, local_def_id: LocalDefId) -> bool { FFI_UNWIND_CALLS, lint_root, span, - errors::AsmUnwindCall { span }, + diagnostics::AsmUnwindCall { span }, ); tainted = true; @@ -119,7 +119,7 @@ fn has_ffi_unwind_calls(tcx: TyCtxt<'_>, local_def_id: LocalDefId) -> bool { FFI_UNWIND_CALLS, lint_root, span, - errors::FfiUnwindCall { span, foreign }, + diagnostics::FfiUnwindCall { span, foreign }, ); tainted = true; diff --git a/compiler/rustc_mir_transform/src/function_item_references.rs b/compiler/rustc_mir_transform/src/function_item_references.rs index 71c9b79d682df..ca1aeedf10180 100644 --- a/compiler/rustc_mir_transform/src/function_item_references.rs +++ b/compiler/rustc_mir_transform/src/function_item_references.rs @@ -7,7 +7,7 @@ use rustc_middle::ty::{self, EarlyBinder, GenericArgsRef, Ty, TyCtxt}; use rustc_session::lint::builtin::FUNCTION_ITEM_REFERENCES; use rustc_span::{Span, Spanned, sym}; -use crate::errors; +use crate::diagnostics; pub(super) struct FunctionItemReferences; @@ -179,7 +179,7 @@ impl<'tcx> FunctionItemRefChecker<'_, 'tcx> { FUNCTION_ITEM_REFERENCES, lint_root, span, - errors::FnItemRef { span, sugg, ident }, + diagnostics::FnItemRef { span, sugg, ident }, ); } } diff --git a/compiler/rustc_mir_transform/src/inline.rs b/compiler/rustc_mir_transform/src/inline.rs index f234166be24a6..bfd200884b676 100644 --- a/compiler/rustc_mir_transform/src/inline.rs +++ b/compiler/rustc_mir_transform/src/inline.rs @@ -253,7 +253,7 @@ impl<'tcx> Inliner<'tcx> for ForceInliner<'tcx> { let call_span = callsite.source_info.span; let callee = tcx.def_path_str(callsite.callee.def_id()); - tcx.dcx().emit_err(crate::errors::ForceInlineFailure { + tcx.dcx().emit_err(crate::diagnostics::ForceInlineFailure { call_span, attr_span, caller_span: tcx.def_span(self.def_id), @@ -262,7 +262,7 @@ impl<'tcx> Inliner<'tcx> for ForceInliner<'tcx> { callee: callee.clone(), reason, justification: justification - .map(|sym| crate::errors::ForceInlineJustification { sym, callee }), + .map(|sym| crate::diagnostics::ForceInlineJustification { sym, callee }), }); } } diff --git a/compiler/rustc_mir_transform/src/known_panics_lint.rs b/compiler/rustc_mir_transform/src/known_panics_lint.rs index ff5006032308e..cd8dc963eb33c 100644 --- a/compiler/rustc_mir_transform/src/known_panics_lint.rs +++ b/compiler/rustc_mir_transform/src/known_panics_lint.rs @@ -22,7 +22,7 @@ use rustc_middle::ty::{self, ConstInt, ScalarInt, Ty, TyCtxt, TypeVisitableExt, use rustc_span::Span; use tracing::{debug, instrument, trace}; -use crate::errors::{AssertLint, AssertLintKind}; +use crate::diagnostics::{AssertLint, AssertLintKind}; pub(super) struct KnownPanicsLint; diff --git a/compiler/rustc_mir_transform/src/lib.rs b/compiler/rustc_mir_transform/src/lib.rs index b783cc2d5933b..edf0dcca775ca 100644 --- a/compiler/rustc_mir_transform/src/lib.rs +++ b/compiler/rustc_mir_transform/src/lib.rs @@ -40,8 +40,8 @@ mod check_pointers; mod cost_checker; mod cross_crate_inline; mod deduce_param_attrs; +mod diagnostics; mod elaborate_drop; -mod errors; mod ffi_unwind_calls; mod lint; mod lint_tail_expr_drop_order; diff --git a/compiler/rustc_mir_transform/src/lint_and_remove_uninhabited.rs b/compiler/rustc_mir_transform/src/lint_and_remove_uninhabited.rs index 0b46ba6ffc747..81e98585995fd 100644 --- a/compiler/rustc_mir_transform/src/lint_and_remove_uninhabited.rs +++ b/compiler/rustc_mir_transform/src/lint_and_remove_uninhabited.rs @@ -3,7 +3,7 @@ use rustc_middle::mir::*; use rustc_middle::ty::TyCtxt; use rustc_session::lint::builtin::UNREACHABLE_CODE; -use crate::errors::UnreachableDueToUninhabited; +use crate::diagnostics::UnreachableDueToUninhabited; /// Lint unreachable code due to uninhabited values from function calls, /// and remove return edges from those calls. diff --git a/compiler/rustc_mir_transform/src/liveness.rs b/compiler/rustc_mir_transform/src/liveness.rs index c449cf6867395..795b0b9cac82e 100644 --- a/compiler/rustc_mir_transform/src/liveness.rs +++ b/compiler/rustc_mir_transform/src/liveness.rs @@ -19,7 +19,7 @@ use rustc_span::Span; use rustc_span::edit_distance::find_best_match_for_name; use rustc_span::symbol::{Symbol, kw, sym}; -use crate::errors; +use crate::diagnostics; #[derive(Copy, Clone, Debug, PartialEq, Eq)] enum AccessKind { @@ -175,7 +175,7 @@ fn maybe_suggest_unit_pattern_typo<'tcx>( name: Symbol, span: Span, ty: Ty<'tcx>, -) -> Option { +) -> Option { if let ty::Adt(adt_def, _) = ty.peel_refs().kind() { let variant_names: Vec<_> = adt_def .variants() @@ -189,7 +189,7 @@ fn maybe_suggest_unit_pattern_typo<'tcx>( .iter() .find(|v| v.name == name && matches!(v.ctor, Some((CtorKind::Const, _)))) { - return Some(errors::PatternTypo { + return Some(diagnostics::PatternTypo { span, code: with_no_trimmed_paths!(tcx.def_path_str(variant.def_id)), kind: tcx.def_descr(variant.def_id), @@ -213,7 +213,7 @@ fn maybe_suggest_unit_pattern_typo<'tcx>( && let Some(position) = names.iter().position(|&n| n == item_name) && let Some(&def_id) = constants.get(position) { - return Some(errors::PatternTypo { + return Some(diagnostics::PatternTypo { span, code: with_no_trimmed_paths!(tcx.def_path_str(def_id)), kind: "constant", @@ -275,7 +275,7 @@ fn annotate_mut_binding_to_immutable_binding<'tcx>( body_def_id: LocalDefId, assignment_span: Span, body: &Body<'tcx>, -) -> Option { +) -> Option { use rustc_hir as hir; use rustc_hir::intravisit::{self, Visitor}; @@ -316,7 +316,7 @@ fn annotate_mut_binding_to_immutable_binding<'tcx>( Some(mut_ty.ty.span.shrink_to_lo()) }; - return Some(errors::UnusedAssignSuggestion { + return Some(diagnostics::UnusedAssignSuggestion { ty_span, pre, // Span of the `mut` before the binding. @@ -939,7 +939,7 @@ impl<'a, 'tcx> AssignmentResult<'a, 'tcx> { .split(&brace_name) .any(|c| matches!(c.chars().next(), Some('}' | ':'))) }) - .map(|&(lit, _)| errors::UnusedVariableStringInterp { lit }) + .map(|&(lit, _)| diagnostics::UnusedVariableStringInterp { lit }) .collect::>() }; @@ -997,16 +997,16 @@ impl<'a, 'tcx> AssignmentResult<'a, 'tcx> { } let sugg = if from_macro { - errors::UnusedVariableSugg::NoSugg { span: def_span, name } + diagnostics::UnusedVariableSugg::NoSugg { span: def_span, name } } else { let typo = maybe_suggest_typo(); - errors::UnusedVariableSugg::TryPrefix { spans: vec![def_span], name, typo } + diagnostics::UnusedVariableSugg::TryPrefix { spans: vec![def_span], name, typo } }; tcx.emit_node_span_lint( lint::builtin::UNUSED_VARIABLES, hir_id, def_span, - errors::UnusedVariable { + diagnostics::UnusedVariable { name, string_interp: maybe_suggest_literal_matching_name(name), sugg, @@ -1056,7 +1056,7 @@ impl<'a, 'tcx> AssignmentResult<'a, 'tcx> { lint::builtin::UNUSED_VARIABLES, hir_id, def_span, - errors::UnusedVarAssignedOnly { name, typo }, + diagnostics::UnusedVarAssignedOnly { name, typo }, ); continue; } @@ -1067,7 +1067,7 @@ impl<'a, 'tcx> AssignmentResult<'a, 'tcx> { let any_shorthand = introductions.iter().any(|intro| intro.is_shorthand); let sugg = if any_shorthand { - errors::UnusedVariableSugg::TryIgnore { + diagnostics::UnusedVariableSugg::TryIgnore { name: name.to_ident_string(), shorthands: introductions .iter() @@ -1085,20 +1085,20 @@ impl<'a, 'tcx> AssignmentResult<'a, 'tcx> { .collect(), } } else if from_macro { - errors::UnusedVariableSugg::NoSugg { span: def_span, name } + diagnostics::UnusedVariableSugg::NoSugg { span: def_span, name } } else if !introductions.is_empty() { let typo = maybe_suggest_typo(); - errors::UnusedVariableSugg::TryPrefix { name, typo, spans: spans.clone() } + diagnostics::UnusedVariableSugg::TryPrefix { name, typo, spans: spans.clone() } } else { let typo = maybe_suggest_typo(); - errors::UnusedVariableSugg::TryPrefix { name, typo, spans: vec![def_span] } + diagnostics::UnusedVariableSugg::TryPrefix { name, typo, spans: vec![def_span] } }; tcx.emit_node_span_lint( lint::builtin::UNUSED_VARIABLES, hir_id, spans, - errors::UnusedVariable { + diagnostics::UnusedVariable { name, string_interp: maybe_suggest_literal_matching_name(name), sugg, @@ -1147,7 +1147,7 @@ impl<'a, 'tcx> AssignmentResult<'a, 'tcx> { .rfind(|(_, overwrite_location)| { location.is_predecessor_of(*overwrite_location, self.body) }) - .map(|&(overwrite_span, _)| errors::UnusedAssignOverwrite { + .map(|&(overwrite_span, _)| diagnostics::UnusedAssignOverwrite { assigned_span: source_info.span, overwrite_span, name, @@ -1190,20 +1190,20 @@ impl<'a, 'tcx> AssignmentResult<'a, 'tcx> { lint::builtin::UNUSED_ASSIGNMENTS, hir_id, source_info.span, - errors::UnusedAssign { name, overwrite, help, suggestion }, + diagnostics::UnusedAssign { name, overwrite, help, suggestion }, ) } AccessKind::Param => tcx.emit_node_span_lint( lint::builtin::UNUSED_ASSIGNMENTS, hir_id, source_info.span, - errors::UnusedAssignPassed { name }, + diagnostics::UnusedAssignPassed { name }, ), AccessKind::Capture => tcx.emit_node_span_lint( lint::builtin::UNUSED_ASSIGNMENTS, hir_id, decl_span, - errors::UnusedCaptureMaybeCaptureRef { name }, + diagnostics::UnusedCaptureMaybeCaptureRef { name }, ), } } diff --git a/compiler/rustc_mir_transform/src/pass_manager.rs b/compiler/rustc_mir_transform/src/pass_manager.rs index fbf16f91610c5..72af7b846861e 100644 --- a/compiler/rustc_mir_transform/src/pass_manager.rs +++ b/compiler/rustc_mir_transform/src/pass_manager.rs @@ -9,7 +9,7 @@ use rustc_session::Session; use tracing::trace; use crate::lint::lint_body; -use crate::{errors, validate}; +use crate::{diagnostics, validate}; thread_local! { /// Maps MIR pass names to a snake case form to match profiling naming style @@ -255,14 +255,14 @@ fn run_passes_inner<'tcx>( let mut unknown_found = false; for &name in named_passes.difference(&*crate::PASS_NAMES) { - tcx.dcx().emit_warn(errors::UnknownPassName { name }); + tcx.dcx().emit_warn(diagnostics::UnknownPassName { name }); unknown_found = true; } if unknown_found { let mut valid_pass_names = crate::PASS_NAMES.iter().copied().collect::>(); valid_pass_names.sort(); - tcx.dcx().emit_note(errors::ValidPassNames { valid_passes: valid_pass_names.into() }); + tcx.dcx().emit_note(diagnostics::ValidPassNames { valid_passes: valid_pass_names.into() }); } // Verify that no passes are missing from the `declare_passes` invocation