Skip to content

Commit 26a0fdc

Browse files
committed
fixup let-else on typing mode in the compiler
1 parent 778d274 commit 26a0fdc

3 files changed

Lines changed: 23 additions & 8 deletions

File tree

compiler/rustc_hir_typeck/src/fn_ctxt/_impl.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -673,9 +673,16 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
673673
// being stalled on a coroutine.
674674
self.select_obligations_where_possible(|_| {});
675675

676-
let ty::TypingMode::Analysis { defining_opaque_types_and_generators } = self.typing_mode()
677-
else {
678-
bug!();
676+
let defining_opaque_types_and_generators = match self.typing_mode() {
677+
ty::TypingMode::Analysis { defining_opaque_types_and_generators } => {
678+
defining_opaque_types_and_generators
679+
}
680+
ty::TypingMode::Coherence
681+
| ty::TypingMode::Borrowck { .. }
682+
| ty::TypingMode::PostBorrowckAnalysis { .. }
683+
| ty::TypingMode::PostAnalysis => {
684+
bug!()
685+
}
679686
};
680687

681688
if defining_opaque_types_and_generators

compiler/rustc_hir_typeck/src/opaque_types.rs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
use rustc_hir::def::DefKind;
22
use rustc_infer::traits::ObligationCause;
3+
use rustc_middle::bug;
34
use rustc_middle::ty::{
45
self, DefiningScopeKind, DefinitionSiteHiddenType, OpaqueTypeKey, ProvisionalHiddenType,
5-
TypeVisitableExt, TypingMode,
6+
TypeVisitableExt,
67
};
78
use rustc_trait_selection::error_reporting::infer::need_type_info::TypeAnnotationNeeded;
89
use rustc_trait_selection::opaque_types::{
@@ -97,9 +98,16 @@ impl<'tcx> FnCtxt<'_, 'tcx> {
9798
debug!(?opaque_types);
9899

99100
let tcx = self.tcx;
100-
let TypingMode::Analysis { defining_opaque_types_and_generators } = self.typing_mode()
101-
else {
102-
unreachable!();
101+
let defining_opaque_types_and_generators = match self.typing_mode() {
102+
ty::TypingMode::Analysis { defining_opaque_types_and_generators } => {
103+
defining_opaque_types_and_generators
104+
}
105+
ty::TypingMode::Coherence
106+
| ty::TypingMode::Borrowck { .. }
107+
| ty::TypingMode::PostBorrowckAnalysis { .. }
108+
| ty::TypingMode::PostAnalysis => {
109+
bug!()
110+
}
103111
};
104112

105113
for def_id in defining_opaque_types_and_generators {

compiler/rustc_next_trait_solver/src/solve/assembly/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ where
442442
// normalizing the self type as well, since type variables are not uniquified.
443443
let goal = self.resolve_vars_if_possible(goal);
444444

445-
if let TypingMode::Coherence = self.typing_mode()
445+
if self.typing_mode().is_coherence()
446446
&& let Ok(candidate) = self.consider_coherence_unknowable_candidate(goal)
447447
{
448448
candidates.push(candidate);

0 commit comments

Comments
 (0)