diff --git a/compiler/rustc_mir_transform/src/inline/cycle.rs b/compiler/rustc_mir_transform/src/inline/cycle.rs index 9828e90de883e..41b9fb2edd1ce 100644 --- a/compiler/rustc_mir_transform/src/inline/cycle.rs +++ b/compiler/rustc_mir_transform/src/inline/cycle.rs @@ -136,14 +136,6 @@ pub(crate) fn mir_callgraph_reachable<'tcx>( } false } - // FIXME(-Znext-solver): Remove this hack when trait solver overflow can return an error. - // In code like that pointed out in #128887, the type complexity we ask the solver to deal with - // grows as we recurse into the call graph. If we use the same recursion limit here and in the - // solver, the solver hits the limit first and emits a fatal error. But if we use a reduced - // limit, we will hit the limit first and give up on looking for inlining. And in any case, - // the default recursion limits are quite generous for us. If we need to recurse 64 times - // into the call graph, we're probably not going to find any useful MIR inlining. - let recursion_limit = tcx.recursion_limit() / 2; process( tcx, param_env, @@ -152,7 +144,7 @@ pub(crate) fn mir_callgraph_reachable<'tcx>( &mut Vec::new(), &mut FxHashSet::default(), &mut FxHashMap::default(), - recursion_limit, + tcx.recursion_limit(), ) } diff --git a/tests/mir-opt/inline/type_overflow.rs b/tests/mir-opt/inline/type_overflow.rs deleted file mode 100644 index bfd9e71b9e73f..0000000000000 --- a/tests/mir-opt/inline/type_overflow.rs +++ /dev/null @@ -1,32 +0,0 @@ -// This is a regression test for one of the problems in #128887; it checks that the -// strategy in #129714 avoids trait solver overflows in this specific case. - -// skip-filecheck -//@ compile-flags: -Zinline-mir - -pub trait Foo { - type Associated; - type Chain: Foo; -} - -trait FooExt { - fn do_ext() {} -} -impl> FooExt for T {} - -#[allow(unconditional_recursion)] -fn recurse>() { - T::do_ext(); - recurse::(); -} - -macro_rules! emit { - ($($m:ident)*) => {$( - pub fn $m>() { - recurse::(); - } - )*} -} - -// Increase the chance of triggering the bug -emit!(m00 m01 m02 m03 m04 m05 m06 m07 m08 m09 m10 m11 m12 m13 m14 m15 m16 m17 m18 m19);