rust icon indicating copy to clipboard operation
rust copied to clipboard

Infinite loop in compiler

Open wbrickner opened this issue 2 years ago • 5 comments

Minimal example code which causes infinite compile times:

https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=13fec5b370c8046012770d2e2470c934

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.

rustc --version --verbose:

rustc 1.73.0 (cc66ad468 2023-10-03)
binary: rustc
commit-hash: cc66ad468955717ab92600c770da8c1601a4ff33
commit-date: 2023-10-03
host: aarch64-apple-darwin
release: 1.73.0
LLVM version: 17.0.2

wbrickner avatar Nov 22 '23 04:11 wbrickner

@rustbot assign

veera-sivarajan avatar Mar 31 '24 05:03 veera-sivarajan

Error: Parsing assign command in comment failed: ...' assign' | error: specify user to assign to at >| ''...

Please file an issue on GitHub at triagebot if there's a problem with this bot, or reach out on #t-infra on Zulip.

rustbot avatar Mar 31 '24 05:03 rustbot

@rustbot claim

veera-sivarajan avatar Mar 31 '24 05:03 veera-sivarajan

Bump as this bug still exists in 1.80 stable + beta + nightly compilers

wbrickner avatar Aug 05 '24 20:08 wbrickner

Bump as I just hit what I think is this problem (I have similar recursive trees), and am getting infinite compile times. Same playground in original issue report is unchanged in latest 1.94.0 nightly

glingy avatar Dec 06 '25 18:12 glingy