mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-16 04:55:22 +03:00
fe7bf993aa
Divergence here means that for some reason, the end of a block will not be
reached. We tried to model this just using the never type, but that doesn't work
fully (e.g. in `let x = { loop {}; "foo" };` x should still have type `&str`);
so this introduces a `diverges` flag that the type checker keeps track of, like
rustc does.