Description
EDIT:
This issue is with recursively imported modules like this:
pub mod myMod {
pub use super::*;
}
where if crate A defines a module like that, attempting to use it in crate B will cause rustc and rustdoc to choke.
I'm sorry I can't provide any compiler output for this, because it technically did not crash, but I did get the thread stack using Process Explorer.
Here is the process info when I decided to kill the process:
And here is the stack trace where it seems to copy new memory:
rustc_resolve
seems to crop up often as I refreshed the stack view.
I can't reproduce this with a short piece of code, because the resolution stuff is tied into the project, but I can show you exactly what happened in my code to produce this effect.
Basically, I'm writing an OpenAL wrapper, and attempting to refer to GLuint
rather than ALuint
causes the bug.
For example:
unsafe fn run() -> ALResult<()> {
let sample_rate: GLuint = 44_100;
let freq: GLuint = 600;
}
fn main() {
unsafe {
run().unwrap();
}
}
should give an error that GLuint
is not found, because it was a typo on my part, but instead it seems to soft-fail exhaustively resolving GLuint
If I correct my typo to ALuint
, it compiles instantly with minimal memory usage.
Meta
Version:
rustc 1.15.0-nightly (71c06a56a 2016-12-18)
binary: rustc
commit-hash: 71c06a56a120a0d5e3b224105ee3e6754f83e5fa
commit-date: 2016-12-18
host: x86_64-pc-windows-msvc
release: 1.15.0-nightly
LLVM version: 3.9