bors[bot] f9ec7cebef
Merge #4377
4377: Implement better handling of divergence r=matklad a=flodiebold

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. We also add some checking for `break`, but no support for break-with-value or labeled breaks yet.

Co-authored-by: Florian Diebold <florian.diebold@freiheit.com>
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2020-05-08 18:09:25 +00:00
..
2020-05-07 17:32:01 +02:00
2020-05-06 18:09:28 +02:00
2020-05-08 14:55:28 +02:00
2020-05-02 11:21:39 +02:00
2020-05-02 10:30:49 +00:00
2020-05-07 16:29:01 +00:00
2020-05-05 23:56:10 +08:00
2020-05-02 14:35:17 +02:00
2020-05-06 13:21:49 +02:00
2020-05-08 14:55:28 +02:00
2020-05-07 18:50:00 +00:00
2020-05-03 21:35:21 +03:00