rust/src
Tomasz Miąsko 10b722cc79 Ignore unwinding edges when checking for unconditional recursion
The unconditional recursion lint determines if all execution paths
eventually lead to a self-recursive call.

The implementation always follows unwinding edges which limits its
practical utility. For example, it would not lint function `f` because a
call to `g` might unwind. It also wouldn't lint function `h` because an
overflow check preceding the self-recursive call might unwind:

```rust
pub fn f() {
    g();
    f();
}

pub fn g() { /* ... */ }

pub fn h(a: usize) {
  h(a + 1);
}
```

To avoid the issue, assume that terminators that might continue
execution along non-unwinding edges do so.
2022-01-26 13:46:01 +01:00
..
bootstrap Auto merge of #93047 - matthiaskrgr:defer__dist_PlainSourceTarball, r=Mark-Simulacrum 2022-01-23 12:29:08 +00:00
build_helper Remove dead code from build_helper 2022-01-22 12:06:44 +01:00
ci Auto merge of #92983 - pietroalbini:pa-bump-runner-images, r=Mark-Simulacrum 2022-01-21 17:43:39 +00:00
doc Rollup merge of #93219 - cr1901:msp430-asm-squashed, r=Amanieu 2022-01-23 20:13:04 +01:00
etc Auto merge of #87648 - JulianKnodt:const_eq_constrain, r=oli-obk 2022-01-18 09:58:39 +00:00
librustdoc Auto merge of #88679 - petrochenkov:doctrscope, r=GuillaumeGomez 2022-01-26 09:10:27 +00:00
llvm-project@6b3dbcc81a Use Term in ProjectionPredicate 2022-01-17 17:44:56 +00:00
rustdoc-json-types Increase the format version of rustdoc-json-types 2022-01-20 22:14:02 +01:00
test Ignore unwinding edges when checking for unconditional recursion 2022-01-26 13:46:01 +01:00
tools Update cargo 2022-01-25 16:24:21 -08:00
README.md
stage0.json Bump bootstrap compiler 2021-11-30 10:44:21 -05:00
version bump version to 1.60.0 2022-01-07 10:04:15 +01:00

This directory contains the source code of the rust project, including:

  • The test suite
  • The bootstrapping build system
  • Various submodules for tools, like rustdoc, rls, etc.

For more information on how various parts of the compiler work, see the rustc dev guide.