Skip to content

Commit 6173240

Browse files
committed
Expose rustc_trait_selection::error_reporting::ambiguity module
1 parent 524f3c9 commit 6173240

File tree

3 files changed

+13
-12
lines changed

3 files changed

+13
-12
lines changed

compiler/rustc_trait_selection/src/traits/error_reporting/ambiguity.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,16 @@ use rustc_span::{Span, DUMMY_SP};
77

88
use crate::traits::ObligationCtxt;
99

10-
pub enum Ambiguity {
10+
#[derive(Debug)]
11+
pub enum CandidateSource {
1112
DefId(DefId),
1213
ParamEnv(Span),
1314
}
1415

15-
pub fn recompute_applicable_impls<'tcx>(
16+
pub fn compute_applicable_impls_for_diagnostics<'tcx>(
1617
infcx: &InferCtxt<'tcx>,
1718
obligation: &PolyTraitObligation<'tcx>,
18-
) -> Vec<Ambiguity> {
19+
) -> Vec<CandidateSource> {
1920
let tcx = infcx.tcx;
2021
let param_env = obligation.param_env;
2122

@@ -97,7 +98,7 @@ pub fn recompute_applicable_impls<'tcx>(
9798
obligation.predicate.skip_binder().trait_ref.self_ty(),
9899
|impl_def_id| {
99100
if infcx.probe(|_| impl_may_apply(impl_def_id)) {
100-
ambiguities.push(Ambiguity::DefId(impl_def_id))
101+
ambiguities.push(CandidateSource::DefId(impl_def_id))
101102
}
102103
},
103104
);
@@ -112,9 +113,9 @@ pub fn recompute_applicable_impls<'tcx>(
112113
if kind.rebind(trait_pred.trait_ref)
113114
== ty::Binder::dummy(ty::TraitRef::identity(tcx, trait_pred.def_id()))
114115
{
115-
ambiguities.push(Ambiguity::ParamEnv(tcx.def_span(trait_pred.def_id())))
116+
ambiguities.push(CandidateSource::ParamEnv(tcx.def_span(trait_pred.def_id())))
116117
} else {
117-
ambiguities.push(Ambiguity::ParamEnv(span))
118+
ambiguities.push(CandidateSource::ParamEnv(span))
118119
}
119120
}
120121
}

compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// ignore-tidy-filelength :(
22

3-
mod ambiguity;
3+
pub mod ambiguity;
44
mod infer_ctxt_ext;
55
pub mod on_unimplemented;
66
pub mod suggestions;

compiler/rustc_trait_selection/src/traits/error_reporting/type_err_ctxt_ext.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use crate::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind};
1010
use crate::infer::InferCtxtExt as _;
1111
use crate::infer::{self, InferCtxt};
1212
use crate::traits::error_reporting::infer_ctxt_ext::InferCtxtExt;
13-
use crate::traits::error_reporting::{ambiguity, ambiguity::Ambiguity::*};
13+
use crate::traits::error_reporting::{ambiguity, ambiguity::CandidateSource::*};
1414
use crate::traits::query::evaluate_obligation::InferCtxtExt as _;
1515
use crate::traits::specialize::to_pretty_impl_header;
1616
use crate::traits::NormalizeExt;
@@ -2386,7 +2386,7 @@ impl<'tcx> TypeErrCtxt<'_, 'tcx> {
23862386
)
23872387
};
23882388

2389-
let mut ambiguities = ambiguity::recompute_applicable_impls(
2389+
let mut ambiguities = ambiguity::compute_applicable_impls_for_diagnostics(
23902390
self.infcx,
23912391
&obligation.with(self.tcx, trait_ref),
23922392
);
@@ -2702,7 +2702,7 @@ impl<'tcx> TypeErrCtxt<'_, 'tcx> {
27022702
fn annotate_source_of_ambiguity(
27032703
&self,
27042704
err: &mut Diag<'_>,
2705-
ambiguities: &[ambiguity::Ambiguity],
2705+
ambiguities: &[ambiguity::CandidateSource],
27062706
predicate: ty::Predicate<'tcx>,
27072707
) {
27082708
let mut spans = vec![];
@@ -2711,7 +2711,7 @@ impl<'tcx> TypeErrCtxt<'_, 'tcx> {
27112711
let mut has_param_env = false;
27122712
for ambiguity in ambiguities {
27132713
match ambiguity {
2714-
ambiguity::Ambiguity::DefId(impl_def_id) => {
2714+
ambiguity::CandidateSource::DefId(impl_def_id) => {
27152715
match self.tcx.span_of_impl(*impl_def_id) {
27162716
Ok(span) => spans.push(span),
27172717
Err(name) => {
@@ -2722,7 +2722,7 @@ impl<'tcx> TypeErrCtxt<'_, 'tcx> {
27222722
}
27232723
}
27242724
}
2725-
ambiguity::Ambiguity::ParamEnv(span) => {
2725+
ambiguity::CandidateSource::ParamEnv(span) => {
27262726
has_param_env = true;
27272727
spans.push(*span);
27282728
}

0 commit comments

Comments
 (0)