Auto merge of #117878 - gavinleroy:proper-depth-check, r=lcnr
Fix depth check in ProofTreeVisitor. The hack to cutoff overflows and cycles in the new trait solver was incorrect. We want to inspect everything with depth [0..10]. This fix exposed a previously unseen bug, which caused the compiler to ICE when invoking `trait_ref` on a non-assoc type projection. I simply added the guard in the `AmbiguityCausesVisitor`, and updated the expected output for the `auto-trait-coherence` test which now includes the extra note: ```text | = note: upstream crates may add a new impl of trait `std::marker::Send` for type `OpaqueType` in future versions ``` r? `@lcnr`
This commit is contained in:
@@ -58,7 +58,7 @@ impl<'a, 'tcx> InspectCandidate<'a, 'tcx> {
|
||||
visitor: &mut V,
|
||||
) -> ControlFlow<V::BreakTy> {
|
||||
// HACK: An arbitrary cutoff to avoid dealing with overflow and cycles.
|
||||
if self.goal.depth >= 10 {
|
||||
if self.goal.depth <= 10 {
|
||||
let infcx = self.goal.infcx;
|
||||
infcx.probe(|_| {
|
||||
let mut instantiated_goals = vec![];
|
||||
|
||||
Reference in New Issue
Block a user