error[E0275]: overflow evaluating the requirement `[&&[Vec<&&[&&[_]], _>]]: PartialEq<[_]>`
|
= help: consider increasing the recursion limit by adding a `#![recursion_limit = "96"]` attribute to your crate (`main`)
= note: required because of the requirements on the impl of `PartialEq<&[_]>` for `&[&&[Vec<&&[&&[_]], _>]]`
= note: 47 redundant requirements hidden
= note: required because of the requirements on the impl of `PartialEq<Vec<&[&[&[Vec<&[&[&[Vec<&[&[&&[Vec<&[&[&&[Vec<&[&&[&&[Vec<&[&&[&&[Vec<&&[&&[_]], _>]]; _], _>]]], _>]; _]], _>]]], _>; _]]], _>]]], _>>` for `Vec<[[[Vec<&[&[&[Vec<&[&[&[Vec<&[&[&&[Vec<&[&[&&[Vec<&[&&[&&[Vec<&[&&[&&[Vec<&&[&&[_]], _>]]; _], _>]]], _>]; _]], _>]]], _>; _]]], _>]]], _>; 1]; 1]; 1]>`
Found with a modified fuzz-rustc.
Code
This input effectively hangs the compiler during
item_types_checking/ trait selection.Time complexity
The time spent increases exponentially(?) with the complexity of type
xand with the recursion_limit setting.#![recursion_limit = "16"]#![recursion_limit = "32"]#![recursion_limit = "48"]#Regression
Regression in nightly-2022-05-28, from #96046. At the same time, the error message changed from E0275 to E0277.
Error before 2022-05-28
E0275: An evaluation of a trait requirement overflowed
Current error
E0277: trait requirement not satisfied
Version
rustc --version --verbose:@rustbot label +I-compiletime +I-hang