Skip to content

Improve error for missing braces in const block #78168

@camelid

Description

@camelid
Member

Someone may try to write code like this (playground):

#![allow(incomplete_features)]
#![feature(inline_const)]

fn foo() {
    let x = 2;
    match x {
        const 2 => {}
    }
}

Yet this produces these misleading errors:

   Compiling playground v0.0.1 (/playground)
error: expected identifier, found keyword `const`
 --> src/lib.rs:7:9
  |
7 |         const 2 => {}
  |         ^^^^^ expected identifier, found keyword

error: expected one of `=>`, `@`, `if`, or `|`, found `2`
 --> src/lib.rs:7:15
  |
7 |         const 2 => {}
  |               ^ expected one of `=>`, `@`, `if`, or `|`

error: aborting due to 2 previous errors

error: could not compile `playground`

To learn more, run the command again with --verbose.

Another example (playground):

#![allow(incomplete_features)]
#![feature(inline_const)]

fn foo() {
    let x = const 2;
}

Error:

   Compiling playground v0.0.1 (/playground)
error: expected expression, found keyword `const`
 --> src/lib.rs:5:13
  |
5 |     let x = const 2;
  |             ^^^^^ expected expression

error: aborting due to previous error

error: could not compile `playground`

To learn more, run the command again with --verbose.

Activity

added
A-diagnosticsArea: Messages for errors, warnings, and lints
D-confusingDiagnostics: Confusing error or lint that should be reworked.
F-inline_constInline constants (aka: const blocks, const expressions, anonymous constants)
A-parserArea: The lexing & parsing of Rust source code to an AST
on Oct 20, 2020
camelid

camelid commented on Oct 20, 2020

@camelid
MemberAuthor

I would like to work on this.

self-assigned this
on Oct 20, 2020
spastorino

spastorino commented on Oct 21, 2020

@spastorino
Member

@camelid 👍, would be happy to review

added
C-enhancementCategory: An issue proposing an enhancement or a PR with one.
T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
on Oct 21, 2020
removed their assignment
on Apr 6, 2021
GrigorenkoPV

GrigorenkoPV commented on Sep 23, 2024

@GrigorenkoPV
Contributor

@rustbot claim

added 2 commits that reference this issue on Sep 23, 2024
added a commit that references this issue on Sep 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

A-diagnosticsArea: Messages for errors, warnings, and lintsA-parserArea: The lexing & parsing of Rust source code to an ASTC-enhancementCategory: An issue proposing an enhancement or a PR with one.D-confusingDiagnostics: Confusing error or lint that should be reworked.F-inline_constInline constants (aka: const blocks, const expressions, anonymous constants)T-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

    Participants

    @spastorino@JohnTitor@camelid@GrigorenkoPV

    Issue actions

      Improve error for missing braces in const block · Issue #78168 · rust-lang/rust