Skip to content

Extra whitespace when suggesting removal of invalid qualifiers from fn pointer #133083

Closed
@tyrone-wu

Description

@tyrone-wu

Code

type FOO = const async fn();

Current output

error: an `fn` pointer type cannot be `const`
 --> src/main.rs:1:12
  |
1 | type FOO = const async fn();
  |            -----^^^^^^^^^^^
  |            |
  |            `const` because of this
  |
help: remove the `const` qualifier
  |
1 - type FOO = const async fn();
1 + type FOO =  async fn();
  |

error: an `fn` pointer type cannot be `async`
 --> src/main.rs:1:12
  |
1 | type FOO = const async fn();
  |            ^^^^^^-----^^^^^
  |                  |
  |                  `async` because of this
  |
help: remove the `async` qualifier
  |
1 - type FOO = const async fn();
1 + type FOO = const  fn();
  |

Desired output

1 - type FOO = const async fn();
1 + type FOO = async fn();

...

1 - type FOO = const async fn();
1 + type FOO = const fn();

Rationale and extra context

The suggestion of the current output produces an extra whitespace for each invalid qualifier.

type FOO =   fn();

Ideally, the desired output should fully remove the qualifier and following whitespaces up until the next token.

type FOO = fn();

Other cases

Rust Version

rustc 1.82.0 (f6e511eec 2024-10-15)
binary: rustc
commit-hash: f6e511eec7342f59a25f7c0534f1dbea00d01b14
commit-date: 2024-10-15
host: x86_64-unknown-linux-gnu
release: 1.82.0
LLVM version: 19.1.1

Anything else?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-diagnosticsArea: Messages for errors, warnings, and lintsT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions