Skip to content

Commit

Permalink
Auto merge of rust-lang#104610 - ouz-a:revert-overflow, r=compiler-er…
Browse files Browse the repository at this point in the history
…rors

Reverts check done by rust-lang#100757

As my `fix` caused more issues than it resolved it's better to revert it.
( rust-lang#103274 rust-lang#104322 rust-lang#104606)

r? `@compiler-errors`

Reopens rust-lang#95134
  • Loading branch information
bors committed Nov 24, 2022
2 parents 872631d + 701970e commit fd815a5
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 29 deletions.
16 changes: 0 additions & 16 deletions compiler/rustc_trait_selection/src/traits/project.rs
Original file line number Diff line number Diff line change
Expand Up @@ -566,22 +566,6 @@ impl<'a, 'b, 'tcx> TypeFolder<'tcx> for AssocTypeNormalizer<'a, 'b, 'tcx> {
.flatten()
.unwrap_or_else(|| ty.super_fold_with(self).into())
};
// For cases like #95134 we would like to catch overflows early
// otherwise they slip away and cause ICE.
let recursion_limit = self.tcx().recursion_limit();
if !recursion_limit.value_within_limit(self.depth)
// HACK: Don't overflow when running cargo doc see #100991
&& !self.tcx().sess.opts.actually_rustdoc
{
let obligation = Obligation::with_depth(
self.selcx.tcx(),
self.cause.clone(),
recursion_limit.0,
self.param_env,
ty,
);
self.selcx.infcx().err_ctxt().report_overflow_error(&obligation, true);
}
debug!(
?self.depth,
?ty,
Expand Down
1 change: 1 addition & 0 deletions src/test/ui/issues/issue-23122-2.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// normalize-stderr-test: "long-type-\d+" -> "long-type-hash"
trait Next {
type Next: Next;
}
Expand Down
10 changes: 8 additions & 2 deletions src/test/ui/issues/issue-23122-2.stderr
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
error[E0275]: overflow evaluating the requirement `<T as Next>::Next`
--> $DIR/issue-23122-2.rs:10:17
error[E0275]: overflow evaluating the requirement `<<<<<<<... as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next: Sized`
--> $DIR/issue-23122-2.rs:11:17
|
LL | type Next = <GetNext<T::Next> as Next>::Next;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`issue_23122_2`)
note: required for `GetNext<<<<<<... as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next>` to implement `Next`
--> $DIR/issue-23122-2.rs:10:15
|
LL | impl<T: Next> Next for GetNext<T> {
| ^^^^ ^^^^^^^^^^
= note: the full type name has been written to '$TEST_BUILD_DIR/issues/issue-23122-2/issue-23122-2.long-type-hash.txt'

error: aborting due to previous error

Expand Down
4 changes: 1 addition & 3 deletions src/test/ui/recursion/issue-83150.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,9 @@ LL | func(&mut iter.map(|x| x + 1))
= help: a `loop` may express intention better if this is on purpose
= note: `#[warn(unconditional_recursion)]` on by default

error[E0275]: overflow evaluating the requirement `<std::ops::Range<u8> as Iterator>::Item`
error[E0275]: overflow evaluating the requirement `Map<&mut Map<&mut Map<&mut Map<..., ...>, ...>, ...>, ...>: Iterator`
|
= help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`issue_83150`)
= note: required for `Map<&mut std::ops::Range<u8>, [closure@$DIR/issue-83150.rs:12:24: 12:27]>` to implement `Iterator`
= note: 64 redundant requirements hidden
= note: required for `&mut Map<&mut Map<&mut Map<..., ...>, ...>, ...>` to implement `Iterator`
= note: the full type name has been written to '$TEST_BUILD_DIR/recursion/issue-83150/issue-83150.long-type-hash.txt'

Expand Down
4 changes: 3 additions & 1 deletion src/test/ui/recursion/issue-95134.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// build-fail
// known-bug: #95134
// compile-flags: -Copt-level=0
//~^^ ERROR overflow evaluating the requirement
// failure-status: 101
// dont-check-compiler-stderr

pub fn encode_num<Writer: ExampleWriter>(n: u32, mut writer: Writer) -> Result<(), Writer::Error> {
if n > 15 {
Expand Down
7 changes: 0 additions & 7 deletions src/test/ui/recursion/issue-95134.stderr

This file was deleted.

0 comments on commit fd815a5

Please sign in to comment.