Files
rust/tests/ui/codegen/normalization-overflow/recursion-issue-92470.rs
2025-10-12 06:59:10 +08:00

34 lines
557 B
Rust

//@ build-fail
fn main() {
encode(&mut EncoderImpl);
}
pub trait Encoder {
type W;
fn writer(&self) -> Self::W;
}
fn encode<E: Encoder>(mut encoder: E) {
//~^ WARN: function cannot return without recursing
encoder.writer();
encode(&mut encoder);
//~^ ERROR: reached the recursion limit while instantiating
}
struct EncoderImpl;
impl Encoder for EncoderImpl {
type W = ();
fn writer(&self) {}
}
impl<'a, T: Encoder> Encoder for &'a mut T {
type W = T::W;
fn writer(&self) -> Self::W {
panic!()
}
}