rust/src/test/ui/issues/issue-8727.rs
Aaron Hill 3ed96a6d63
Point at the call spawn when overflow occurs during monomorphization
This improves the output for issue #72577, but there's still more work
to be done.

Currently, an overflow error during monomorphization results in an error
that points at the function we were unable to monomorphize. However, we
don't point at the call that caused the monomorphization to happen. In
the overflow occurs in a large recursive function, it may be difficult
to determine where the issue is.

This commit tracks and `Span` information during collection of
`MonoItem`s, which is used when emitting an overflow error. `MonoItem`
itself is unchanged, so this only affects
`src/librustc_mir/monomorphize/collector.rs`
2020-06-22 14:35:42 -04:00

15 lines
386 B
Rust

// Verify the compiler fails with an error on infinite function
// recursions.
// build-fail
fn generic<T>() { //~ WARN function cannot return without recursing
generic::<Option<T>>();
}
//~^^ ERROR reached the recursion limit while instantiating `generic::<std::option::Option<
fn main () {
// Use generic<T> at least once to trigger instantiation.
generic::<i32>();
}