Skip to content

Commit e86fbcf

Browse files
Move rustc_infer::infer::error_reporting to rustc_infer::error_reporting::infer
1 parent 24d2ac0 commit e86fbcf

38 files changed

+508
-87
lines changed

compiler/rustc_borrowck/src/diagnostics/bound_region_errors.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use rustc_errors::Diag;
22
use rustc_hir::def_id::LocalDefId;
3+
use rustc_infer::error_reporting::infer::nice_region_error::NiceRegionError;
34
use rustc_infer::infer::canonical::Canonical;
4-
use rustc_infer::infer::error_reporting::nice_region_error::NiceRegionError;
55
use rustc_infer::infer::region_constraints::Constraint;
66
use rustc_infer::infer::region_constraints::RegionConstraintData;
77
use rustc_infer::infer::RegionVariableOrigin;

compiler/rustc_borrowck/src/diagnostics/region_errors.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ use rustc_hir::GenericBound::Trait;
1010
use rustc_hir::QPath::Resolved;
1111
use rustc_hir::WherePredicate::BoundPredicate;
1212
use rustc_hir::{PolyTraitRef, TyKind, WhereBoundPredicate};
13-
use rustc_infer::infer::error_reporting::nice_region_error::{
13+
use rustc_infer::error_reporting::infer::nice_region_error::{
1414
self, find_anon_type, find_param_with_region, suggest_adding_lifetime_params,
1515
HirTraitObjectVisitor, NiceRegionError, TraitObjectVisitor,
1616
};
17-
use rustc_infer::infer::error_reporting::region::unexpected_hidden_region_diagnostic;
17+
use rustc_infer::error_reporting::infer::region::unexpected_hidden_region_diagnostic;
1818
use rustc_infer::infer::{NllRegionVariableOrigin, RelateParamBound};
1919
use rustc_middle::bug;
2020
use rustc_middle::hir::place::PlaceBase;

compiler/rustc_hir_analysis/src/check/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ use rustc_errors::{pluralize, struct_span_code_err, Diag};
8282
use rustc_hir::def_id::{DefId, LocalDefId};
8383
use rustc_hir::intravisit::Visitor;
8484
use rustc_index::bit_set::BitSet;
85-
use rustc_infer::infer::error_reporting::ObligationCauseExt as _;
85+
use rustc_infer::error_reporting::infer::ObligationCauseExt as _;
8686
use rustc_infer::infer::outlives::env::OutlivesEnvironment;
8787
use rustc_infer::infer::{self, TyCtxtInferExt as _};
8888
use rustc_infer::traits::ObligationCause;

compiler/rustc_hir_typeck/src/fn_ctxt/_impl.rs

+8-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use rustc_hir_analysis::hir_ty_lowering::{
1919
GenericPathSegment, HirTyLowerer, IsMethodCall, RegionInferReason,
2020
};
2121
use rustc_infer::infer::canonical::{Canonical, OriginalQueryValues, QueryResponse};
22-
use rustc_infer::infer::error_reporting::TypeAnnotationNeeded::E0282;
22+
use rustc_infer::infer::need_type_info::TypeAnnotationNeeded;
2323
use rustc_infer::infer::{DefineOpaqueTypes, InferResult};
2424
use rustc_lint::builtin::SELF_CONSTRUCTOR_FROM_OUTER_ITEM;
2525
use rustc_middle::ty::adjustment::{Adjust, Adjustment, AutoBorrow, AutoBorrowMutability};
@@ -1519,7 +1519,13 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
15191519
} else {
15201520
let e = self.tainted_by_errors().unwrap_or_else(|| {
15211521
self.err_ctxt()
1522-
.emit_inference_failure_err(self.body_id, sp, ty.into(), E0282, true)
1522+
.emit_inference_failure_err(
1523+
self.body_id,
1524+
sp,
1525+
ty.into(),
1526+
TypeAnnotationNeeded::E0282,
1527+
true,
1528+
)
15231529
.emit()
15241530
});
15251531
let err = Ty::new_error(self.tcx, e);

compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ use rustc_hir_analysis::check::intrinsicck::InlineAsmCtxt;
2929
use rustc_hir_analysis::check::potentially_plural_count;
3030
use rustc_hir_analysis::hir_ty_lowering::HirTyLowerer;
3131
use rustc_index::IndexVec;
32-
use rustc_infer::infer::error_reporting::{FailureCode, ObligationCauseExt};
32+
use rustc_infer::error_reporting::infer::{FailureCode, ObligationCauseExt};
3333
use rustc_infer::infer::TypeTrace;
3434
use rustc_infer::infer::{DefineOpaqueTypes, InferOk};
3535
use rustc_middle::ty::adjustment::AllowTwoPhase;

compiler/rustc_hir_typeck/src/fn_ctxt/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ use hir::def_id::CRATE_DEF_ID;
1515
use rustc_hir as hir;
1616
use rustc_hir::def_id::{DefId, LocalDefId};
1717
use rustc_hir_analysis::hir_ty_lowering::{HirTyLowerer, RegionInferReason};
18+
use rustc_infer::error_reporting::infer::sub_relations::SubRelations;
19+
use rustc_infer::error_reporting::infer::TypeErrCtxt;
1820
use rustc_infer::infer;
19-
use rustc_infer::infer::error_reporting::sub_relations::SubRelations;
20-
use rustc_infer::infer::error_reporting::TypeErrCtxt;
2121
use rustc_middle::ty::{self, Const, Ty, TyCtxt, TypeVisitableExt};
2222
use rustc_session::Session;
2323
use rustc_span::symbol::Ident;

compiler/rustc_hir_typeck/src/method/probe.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use rustc_hir::HirId;
1212
use rustc_hir_analysis::autoderef::{self, Autoderef};
1313
use rustc_infer::infer::canonical::OriginalQueryValues;
1414
use rustc_infer::infer::canonical::{Canonical, QueryResponse};
15-
use rustc_infer::infer::error_reporting::TypeAnnotationNeeded::E0282;
15+
use rustc_infer::infer::need_type_info::TypeAnnotationNeeded;
1616
use rustc_infer::infer::DefineOpaqueTypes;
1717
use rustc_infer::infer::{self, InferOk, TyCtxtInferExt};
1818
use rustc_infer::traits::ObligationCauseCode;
@@ -441,7 +441,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
441441
self.body_id,
442442
span,
443443
ty.into(),
444-
E0282,
444+
TypeAnnotationNeeded::E0282,
445445
!raw_ptr_call,
446446
);
447447
if raw_ptr_call {

compiler/rustc_hir_typeck/src/writeback.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use rustc_errors::{ErrorGuaranteed, StashKey};
88
use rustc_hir as hir;
99
use rustc_hir::intravisit::{self, Visitor};
1010
use rustc_hir::HirId;
11-
use rustc_infer::infer::error_reporting::TypeAnnotationNeeded::E0282;
11+
use rustc_infer::infer::need_type_info::TypeAnnotationNeeded;
1212
use rustc_middle::span_bug;
1313
use rustc_middle::traits::ObligationCause;
1414
use rustc_middle::ty::adjustment::{Adjust, Adjustment, PointerCoercion};
@@ -783,7 +783,7 @@ impl<'cx, 'tcx> Resolver<'cx, 'tcx> {
783783
self.fcx.tcx.hir().body_owner_def_id(self.body.id()),
784784
self.span.to_span(self.fcx.tcx),
785785
p.into(),
786-
E0282,
786+
TypeAnnotationNeeded::E0282,
787787
false,
788788
)
789789
.emit()

compiler/rustc_infer/src/infer/error_reporting/mod.rs renamed to compiler/rustc_infer/src/error_reporting/infer/mod.rs

+21-24
Original file line numberDiff line numberDiff line change
@@ -45,17 +45,11 @@
4545
//! ported to this system, and which relies on string concatenation at the
4646
//! time of error detection.
4747
48-
use super::{InferCtxt, TypeTrace, ValuePairs};
49-
50-
use crate::errors::{ObligationCauseFailureCode, TypeErrorAdditionalDiags};
51-
use crate::infer;
52-
use crate::infer::ExpectedFound;
53-
use crate::traits::{
54-
IfExpressionCause, MatchExpressionArmCause, ObligationCause, ObligationCauseCode,
55-
PredicateObligation,
56-
};
48+
use std::borrow::Cow;
49+
use std::ops::{ControlFlow, Deref};
50+
use std::path::PathBuf;
51+
use std::{cmp, fmt, iter};
5752

58-
use crate::infer::relate::{self, RelateResult, TypeRelation};
5953
use rustc_data_structures::fx::{FxIndexMap, FxIndexSet};
6054
use rustc_errors::{
6155
pluralize, Applicability, Diag, DiagCtxtHandle, DiagStyledString, IntoDiagArg, StringPart,
@@ -68,6 +62,7 @@ use rustc_hir::{self as hir};
6862
use rustc_macros::extension;
6963
use rustc_middle::bug;
7064
use rustc_middle::dep_graph::DepContext;
65+
use rustc_middle::ty::error::ExpectedFound;
7166
use rustc_middle::ty::error::TypeErrorToStringExt;
7267
use rustc_middle::ty::print::{with_forced_trimmed_paths, PrintError, PrintTraitRefExt as _};
7368
use rustc_middle::ty::{
@@ -76,18 +71,21 @@ use rustc_middle::ty::{
7671
};
7772
use rustc_span::{sym, BytePos, DesugaringKind, Pos, Span};
7873
use rustc_target::spec::abi;
79-
use std::borrow::Cow;
80-
use std::ops::{ControlFlow, Deref};
81-
use std::path::PathBuf;
82-
use std::{cmp, fmt, iter};
74+
75+
use crate::errors::{ObligationCauseFailureCode, TypeErrorAdditionalDiags};
76+
use crate::infer;
77+
use crate::infer::relate::{self, RelateResult, TypeRelation};
78+
use crate::infer::{InferCtxt, TypeTrace, ValuePairs};
79+
use crate::traits::{
80+
IfExpressionCause, MatchExpressionArmCause, ObligationCause, ObligationCauseCode,
81+
PredicateObligation,
82+
};
8383

8484
mod note_and_explain;
8585
mod suggest;
8686

87-
pub(crate) mod need_type_info;
88-
pub mod sub_relations;
89-
pub use need_type_info::TypeAnnotationNeeded;
9087
pub mod region;
88+
pub mod sub_relations;
9189

9290
pub mod nice_region_error;
9391

@@ -1242,7 +1240,7 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
12421240
Some(values) => {
12431241
let values = self.resolve_vars_if_possible(values);
12441242
let (is_simple_error, exp_found) = match values {
1245-
ValuePairs::Terms(infer::ExpectedFound { expected, found }) => {
1243+
ValuePairs::Terms(ExpectedFound { expected, found }) => {
12461244
match (expected.unpack(), found.unpack()) {
12471245
(ty::TermKind::Ty(expected), ty::TermKind::Ty(found)) => {
12481246
let is_simple_err = expected.is_simple_text(self.tcx)
@@ -1254,7 +1252,7 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
12541252

12551253
(
12561254
is_simple_err,
1257-
Mismatch::Variable(infer::ExpectedFound { expected, found }),
1255+
Mismatch::Variable(ExpectedFound { expected, found }),
12581256
)
12591257
}
12601258
(ty::TermKind::Const(_), ty::TermKind::Const(_)) => {
@@ -1263,13 +1261,13 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
12631261
_ => (false, Mismatch::Fixed("type")),
12641262
}
12651263
}
1266-
ValuePairs::PolySigs(infer::ExpectedFound { expected, found }) => {
1264+
ValuePairs::PolySigs(ExpectedFound { expected, found }) => {
12671265
OpaqueTypesVisitor::visit_expected_found(self.tcx, expected, found, span)
12681266
.report(diag);
12691267
(false, Mismatch::Fixed("signature"))
12701268
}
12711269
ValuePairs::TraitRefs(_) => (false, Mismatch::Fixed("trait")),
1272-
ValuePairs::Aliases(infer::ExpectedFound { expected, .. }) => {
1270+
ValuePairs::Aliases(ExpectedFound { expected, .. }) => {
12731271
(false, Mismatch::Fixed(self.tcx.def_descr(expected.def_id)))
12741272
}
12751273
ValuePairs::Regions(_) => (false, Mismatch::Fixed("lifetime")),
@@ -1303,9 +1301,8 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
13031301
};
13041302
if let Some((sp, msg)) = secondary_span {
13051303
if swap_secondary_and_primary {
1306-
let terr = if let Some(infer::ValuePairs::Terms(infer::ExpectedFound {
1307-
expected,
1308-
..
1304+
let terr = if let Some(infer::ValuePairs::Terms(ExpectedFound {
1305+
expected, ..
13091306
})) = values
13101307
{
13111308
Cow::from(format!("expected this to be `{expected}`"))

compiler/rustc_infer/src/infer/error_reporting/nice_region_error/different_lifetimes.rs renamed to compiler/rustc_infer/src/error_reporting/infer/nice_region_error/different_lifetimes.rs

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
11
//! Error Reporting for Anonymous Region Lifetime Errors
22
//! where both the regions are anonymous.
33
4+
use crate::error_reporting::infer::nice_region_error::find_anon_type::find_anon_type;
5+
use crate::error_reporting::infer::nice_region_error::util::AnonymousParamInfo;
6+
use crate::error_reporting::infer::nice_region_error::NiceRegionError;
47
use crate::errors::AddLifetimeParamsSuggestion;
58
use crate::errors::LifetimeMismatch;
69
use crate::errors::LifetimeMismatchLabels;
7-
use crate::infer::error_reporting::nice_region_error::find_anon_type::find_anon_type;
8-
use crate::infer::error_reporting::nice_region_error::util::AnonymousParamInfo;
9-
use crate::infer::error_reporting::nice_region_error::NiceRegionError;
10-
use crate::infer::lexical_region_resolve::RegionResolutionError;
10+
use crate::infer::RegionResolutionError;
1111
use crate::infer::SubregionOrigin;
12-
use crate::infer::TyCtxt;
1312

1413
use rustc_errors::Subdiagnostic;
1514
use rustc_errors::{Diag, ErrorGuaranteed};
1615
use rustc_hir::def_id::LocalDefId;
1716
use rustc_hir::Ty;
18-
use rustc_middle::ty::Region;
17+
use rustc_middle::ty::{Region, TyCtxt};
1918

2019
impl<'a, 'tcx> NiceRegionError<'a, 'tcx> {
2120
/// Print the error message for lifetime errors when both the concerned regions are anonymous.

compiler/rustc_infer/src/infer/error_reporting/nice_region_error/mismatched_static_lifetime.rs renamed to compiler/rustc_infer/src/error_reporting/infer/nice_region_error/mismatched_static_lifetime.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
//! Error Reporting for when the lifetime for a type doesn't match the `impl` selected for a predicate
22
//! to hold.
33
4+
use crate::error_reporting::infer::nice_region_error::NiceRegionError;
45
use crate::errors::{note_and_explain, IntroducesStaticBecauseUnmetLifetimeReq};
56
use crate::errors::{
67
DoesNotOutliveStaticFromImpl, ImplicitStaticLifetimeSubdiag, MismatchedStaticLifetime,
78
};
8-
use crate::infer::error_reporting::nice_region_error::NiceRegionError;
9-
use crate::infer::lexical_region_resolve::RegionResolutionError;
9+
use crate::infer::RegionResolutionError;
1010
use crate::infer::{SubregionOrigin, TypeTrace};
1111
use crate::traits::ObligationCauseCode;
1212
use rustc_data_structures::fx::FxIndexSet;

compiler/rustc_infer/src/infer/error_reporting/nice_region_error/mod.rs renamed to compiler/rustc_infer/src/error_reporting/infer/nice_region_error/mod.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use crate::infer::error_reporting::TypeErrCtxt;
2-
use crate::infer::lexical_region_resolve::RegionResolutionError;
3-
use crate::infer::lexical_region_resolve::RegionResolutionError::*;
1+
use crate::error_reporting::infer::TypeErrCtxt;
2+
use crate::infer::RegionResolutionError;
3+
use crate::infer::RegionResolutionError::*;
44
use rustc_errors::{Diag, ErrorGuaranteed};
55
use rustc_hir::def_id::LocalDefId;
66
use rustc_middle::ty::{self, TyCtxt};

compiler/rustc_infer/src/infer/error_reporting/nice_region_error/named_anon_conflict.rs renamed to compiler/rustc_infer/src/error_reporting/infer/nice_region_error/named_anon_conflict.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
//! Error Reporting for Anonymous Region Lifetime Errors
22
//! where one region is named and the other is anonymous.
33
4-
use crate::infer::error_reporting::nice_region_error::NiceRegionError;
5-
use crate::{
6-
errors::ExplicitLifetimeRequired,
7-
infer::error_reporting::nice_region_error::find_anon_type::find_anon_type,
8-
};
4+
use crate::error_reporting::infer::nice_region_error::find_anon_type::find_anon_type;
5+
use crate::error_reporting::infer::nice_region_error::NiceRegionError;
6+
use crate::errors::ExplicitLifetimeRequired;
97
use rustc_errors::Diag;
108
use rustc_middle::ty;
119
use rustc_span::symbol::kw;

compiler/rustc_infer/src/infer/error_reporting/nice_region_error/placeholder_error.rs renamed to compiler/rustc_infer/src/error_reporting/infer/nice_region_error/placeholder_error.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1+
use crate::error_reporting::infer::nice_region_error::NiceRegionError;
12
use crate::errors::{
23
ActualImplExpectedKind, ActualImplExpectedLifetimeKind, ActualImplExplNotes,
34
TraitPlaceholderMismatch, TyOrSig,
45
};
5-
use crate::infer::error_reporting::nice_region_error::NiceRegionError;
6-
use crate::infer::lexical_region_resolve::RegionResolutionError;
6+
use crate::infer::RegionResolutionError;
77
use crate::infer::ValuePairs;
88
use crate::infer::{SubregionOrigin, TypeTrace};
99
use crate::traits::{ObligationCause, ObligationCauseCode};

compiler/rustc_infer/src/infer/error_reporting/nice_region_error/placeholder_relation.rs renamed to compiler/rustc_infer/src/error_reporting/infer/nice_region_error/placeholder_relation.rs

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
use crate::{
2-
errors::PlaceholderRelationLfNotSatisfied,
3-
infer::{
4-
error_reporting::nice_region_error::NiceRegionError, RegionResolutionError, SubregionOrigin,
5-
},
6-
};
1+
use crate::error_reporting::infer::nice_region_error::NiceRegionError;
2+
use crate::errors::PlaceholderRelationLfNotSatisfied;
3+
use crate::infer::{RegionResolutionError, SubregionOrigin};
74
use rustc_data_structures::intern::Interned;
85
use rustc_errors::Diag;
96
use rustc_middle::ty::{self, RePlaceholder, Region};

compiler/rustc_infer/src/infer/error_reporting/nice_region_error/static_impl_trait.rs renamed to compiler/rustc_infer/src/error_reporting/infer/nice_region_error/static_impl_trait.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
//! Error Reporting for static impl Traits.
22
3+
use crate::error_reporting::infer::nice_region_error::NiceRegionError;
34
use crate::errors::{
45
ButCallingIntroduces, ButNeedsToSatisfy, DynTraitConstraintSuggestion, MoreTargeted,
56
ReqIntroducedLocations,
67
};
7-
use crate::infer::error_reporting::nice_region_error::NiceRegionError;
8-
use crate::infer::lexical_region_resolve::RegionResolutionError;
8+
use crate::infer::RegionResolutionError;
99
use crate::infer::{SubregionOrigin, TypeTrace};
1010
use crate::traits::{ObligationCauseCode, UnifyReceiverContext};
1111
use rustc_data_structures::fx::FxIndexSet;

compiler/rustc_infer/src/infer/error_reporting/nice_region_error/trait_impl_difference.rs renamed to compiler/rustc_infer/src/error_reporting/infer/nice_region_error/trait_impl_difference.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
//! Error Reporting for `impl` items that do not match the obligations from their `trait`.
22
3+
use crate::error_reporting::infer::nice_region_error::NiceRegionError;
34
use crate::errors::{ConsiderBorrowingParamHelp, RelationshipHelp, TraitImplDiff};
4-
use crate::infer::error_reporting::nice_region_error::NiceRegionError;
5-
use crate::infer::lexical_region_resolve::RegionResolutionError;
5+
use crate::infer::RegionResolutionError;
66
use crate::infer::{Subtype, ValuePairs};
77
use rustc_errors::ErrorGuaranteed;
88
use rustc_hir as hir;

compiler/rustc_infer/src/infer/error_reporting/nice_region_error/util.rs renamed to compiler/rustc_infer/src/error_reporting/infer/nice_region_error/util.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
//! Helper functions corresponding to lifetime errors due to
22
//! anonymous regions.
33
4-
use crate::infer::error_reporting::nice_region_error::NiceRegionError;
5-
use crate::infer::TyCtxt;
64
use rustc_hir as hir;
75
use rustc_hir::def_id::LocalDefId;
8-
use rustc_middle::ty::{self, Binder, Region, Ty, TypeFoldable};
6+
use rustc_middle::ty::{self, Binder, Region, Ty, TyCtxt, TypeFoldable};
97
use rustc_span::Span;
108

9+
use crate::error_reporting::infer::nice_region_error::NiceRegionError;
10+
1111
/// Information about the anonymous region we are searching for.
1212
#[derive(Debug)]
1313
pub struct AnonymousParamInfo<'tcx> {

0 commit comments

Comments
 (0)