Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[unused_braces] Lint multiline blocks as long as not in arms #102432

Closed
wants to merge 2 commits into from

Commits on Jan 27, 2023

  1. [unused_braces] Lint multiline blocks as long as not in arms

    Currently the lint faces a severe limitation: since it only catches single-line block, running rustfmt beforehand will remove all occurences of it, because it breaks them into multiline blocks.
    
    We do not check match `Arm` for two reasons:
    - In case it does not use commas to separate arms, removing the block would result in a compilation error
    Example:
    ```
        match expr {
            pat => {()}
            _ => println!("foo")
        }
        ```
        - Do not lint multiline match arms used for formatting reasons
        ```
        match expr {
           pat => {
               somewhat_long_expression
           }
         // ...
        }
    ```
    
    Delete `unused-braces-lint` test
    
    The modified lint correctly provide a span in its suggestion.
    
    ```shell
        error: unnecessary braces around block return value
          --> /rust/src/test/rustdoc-ui/unused-braces-lint.rs:9:5
           |
        LL | /     {
        LL | |         {
           | |________^
        LL |               use std;
        LL |           }
           |  __________^
        LL | |     }
           | |_____^
           |
        note: the lint level is defined here
          --> /rust/src/test/rustdoc-ui/unused-braces-lint.rs:6:9
           |
        LL | #![deny(unused_braces)]
           |         ^^^^^^^^^^^^^
        help: remove these braces
           |
        LL ~     {
        LL |             use std;
        LL ~         }
           |
    ```
    
    It is unclear to which extend rust-lang#70814 is still an issue, as the inital MCVE does not trigger the lint on stable either,[rust playground](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=b6ff31a449c0b73a08daac8ee43b1fa6)
    
    Fix code with expanded `unused_braces` lint
    
    Also allow `unused_braces` on tests
    
    Mute `unused_braces` on `match_ast!`
    kraktus committed Jan 27, 2023
    Configuration menu
    Copy the full SHA
    e641393 View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2023

  1. Configuration menu
    Copy the full SHA
    eae395b View commit details
    Browse the repository at this point in the history