trait Bound { type Assoc; }
struct Recursive<'a, A: Bound> {
value: A,
rest: &'a Option<Recursive<'a, A::Assoc>>
}
I expected to see: the compiler finish executing.
Instead, this happened: the compiler hangs with modest CPU usage, seemingly indefinitely.
As an aside, the lack of a bound on the Assoc type should raise an error (otherwise the declaration is self-contradictory), but we never even get that far. So I have removed the bound in favor of making the example as minimal as possible. To be clear, the version with the correct bound hangs as well.
Meta
I have not done a thorough search over which versions hang.
The bug exists in stable: 1.73.0, 1.74.0, and possibly more versions of stable compiler.
The bug exists in beta 1.75.0-beta.3, and nightly 1.76.0-nightly, and possibly more versions of these compilers.
Minimal example code which causes infinite compile times:
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=13fec5b370c8046012770d2e2470c934
I expected to see: the compiler finish executing.
Instead, this happened: the compiler hangs with modest CPU usage, seemingly indefinitely.
As an aside, the lack of a bound on the
Assoc
type should raise an error (otherwise the declaration is self-contradictory), but we never even get that far. So I have removed the bound in favor of making the example as minimal as possible. To be clear, the version with the correct bound hangs as well.Meta
I have not done a thorough search over which versions hang.
The bug exists in stable:
1.73.0
,1.74.0
, and possibly more versions of stable compiler. The bug exists in beta1.75.0-beta.3
, and nightly1.76.0-nightly
, and possibly more versions of these compilers.rustc --version --verbose
: