mirror of
https://github.com/rust-lang/rust.git
synced 2025-10-03 18:57:19 +00:00

Replace ad-hoc type path shortening logic for recursive mono instantiation errors to use `tcx.short_string()` instead.
34 lines
570 B
Rust
34 lines
570 B
Rust
//@ build-fail
|
|
//@ compile-flags: -Copt-level=0 --diagnostic-width=100 -Zwrite-long-types-to-disk=yes
|
|
|
|
fn main() {
|
|
rec(Empty);
|
|
}
|
|
|
|
struct Empty;
|
|
|
|
impl Iterator for Empty {
|
|
type Item = ();
|
|
fn next<'a>(&'a mut self) -> core::option::Option<()> {
|
|
None
|
|
}
|
|
}
|
|
|
|
fn identity<T>(x: T) -> T {
|
|
x
|
|
}
|
|
|
|
fn rec<T>(mut it: T)
|
|
where
|
|
T: Iterator,
|
|
{
|
|
if () == () {
|
|
T::count(it);
|
|
} else {
|
|
rec(identity(&mut it))
|
|
//~^ ERROR reached the recursion limit while instantiating
|
|
}
|
|
}
|
|
|
|
// https://github.com/rust-lang/rust/issues/67552
|