about summary refs log tree commit diff
path: root/compiler/rustc_mir_transform/src/coverage/tests.rs
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2022-01-23 01:09:41 +0100
committerGitHub <noreply@github.com>2022-01-23 01:09:41 +0100
commit55a1f8b955df07a421108b1205b96de68cfc7ef0 (patch)
treea029b3ad959e733c0e7928f36f882acac7a28bf3 /compiler/rustc_mir_transform/src/coverage/tests.rs
parent59d9ad98b66afdfa2d9e636743dfd323321e5f49 (diff)
parent3136c5f752837ce48d2e6cf1cc643929d294cfe0 (diff)
downloadrust-55a1f8b955df07a421108b1205b96de68cfc7ef0.tar.gz
rust-55a1f8b955df07a421108b1205b96de68cfc7ef0.zip
Rollup merge of #91122 - dtolnay:not, r=m-ou-se
impl Not for !

The lack of this impl caused trouble for me in some degenerate cases of macro-generated code of the form `if !$cond {...}`, even without `feature(never_type)` on a stable compiler. Namely if `$cond` contains a `return` or `break` or similar diverging expression, which would otherwise be perfectly legal in boolean position, the code previously failed to compile with:

```console
error[E0600]: cannot apply unary operator `!` to type `!`
   --> library/core/tests/ops.rs:239:8
    |
239 |     if !return () {}
    |        ^^^^^^^^^^ cannot apply unary operator `!`
```
Diffstat (limited to 'compiler/rustc_mir_transform/src/coverage/tests.rs')
0 files changed, 0 insertions, 0 deletions