]> git.lizzy.rs Git - rust.git/commitdiff
Rollup merge of #79819 - Aaron1011:feature/macro-trailing-semicolon, r=petrochenkov
authorYuki Okushi <huyuumi.dev@gmail.com>
Fri, 29 Jan 2021 00:17:26 +0000 (09:17 +0900)
committerGitHub <noreply@github.com>
Fri, 29 Jan 2021 00:17:26 +0000 (09:17 +0900)
Add `SEMICOLON_IN_EXPRESSIONS_FROM_MACROS` lint

cc #79813

This PR adds an allow-by-default future-compatibility lint
`SEMICOLON_IN_EXPRESSIONS_FROM_MACROS`. It fires when a trailing semicolon in a
macro body is ignored due to the macro being used in expression
position:

```rust
macro_rules! foo {
    () => {
        true; // WARN
    }
}

fn main() {
    let val = match true {
        true => false,
        _ => foo!()
    };
}
```

The lint takes its level from the macro call site, and
can be allowed for a particular macro by adding
`#[allow(macro_trailing_semicolon)]`.

The lint is set to warn for all internal rustc crates (when being built
by a stage1 compiler). After the next beta bump, we can enable
the lint for the bootstrap compiler as well.

1  2 
src/bootstrap/builder.rs

Simple merge