Skip to content

fix: handle empty expr in tuple expr#22201

Merged
ChayimFriedman2 merged 2 commits intorust-lang:masterfrom
A4-Tacks:tuple-empty-expr
Apr 28, 2026
Merged

fix: handle empty expr in tuple expr#22201
ChayimFriedman2 merged 2 commits intorust-lang:masterfrom
A4-Tacks:tuple-empty-expr

Conversation

@A4-Tacks
Copy link
Copy Markdown
Member

@A4-Tacks A4-Tacks commented Apr 28, 2026

Use logic similar to arg_list for parsing

Example

const _=(a,,b)

Before this PR

CONST
  CONST_KW "const"
  WHITESPACE " "
  UNDERSCORE "_"
  EQ "="
  TUPLE_EXPR
    L_PAREN "("
    PATH_EXPR
      PATH
        PATH_SEGMENT
          NAME_REF
            IDENT "a"
    COMMA ","
ERROR
  COMMA ","
ERROR
  PATH
    PATH_SEGMENT
      NAME_REF
        IDENT "b"
ERROR
  R_PAREN ")"

After this PR

CONST
  CONST_KW "const"
  WHITESPACE " "
  UNDERSCORE "_"
  EQ "="
  TUPLE_EXPR
    L_PAREN "("
    PATH_EXPR
      PATH
        PATH_SEGMENT
          NAME_REF
            IDENT "a"
    COMMA ","
    COMMA ","
    PATH_EXPR
      PATH
        PATH_SEGMENT
          NAME_REF
            IDENT "b"
    R_PAREN ")"

Use logic similar to `arg_list` for parsing

Example
---
```rust
const _=(a,,b)
```

**Before this PR**

```text
CONST@0..11
  CONST_KW@0..5 "const"
  WHITESPACE@5..6 " "
  UNDERSCORE@6..7 "_"
  EQ@7..8 "="
  TUPLE_EXPR@8..11
    L_PAREN@8..9 "("
    PATH_EXPR@9..10
      PATH@9..10
        PATH_SEGMENT@9..10
          NAME_REF@9..10
            IDENT@9..10 "a"
    COMMA@10..11 ","
ERROR@11..12
  COMMA@11..12 ","
ERROR@12..13
  PATH@12..13
    PATH_SEGMENT@12..13
      NAME_REF@12..13
        IDENT@12..13 "b"
ERROR@13..14
  R_PAREN@13..14 ")"
WHITESPACE@14..15 "\n"
```

**After this PR**

```text
CONST@0..11
  CONST_KW@0..5 "const"
  WHITESPACE@5..6 " "
  UNDERSCORE@6..7 "_"
  EQ@7..8 "="
  TUPLE_EXPR
    L_PAREN "("
    PATH_EXPR
      PATH
        PATH_SEGMENT
          NAME_REF
            IDENT "a"
    COMMA ","
    COMMA ","
    PATH_EXPR
      PATH
        PATH_SEGMENT
          NAME_REF
            IDENT "b"
    R_PAREN ")"
```
@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Apr 28, 2026
@ChayimFriedman2 ChayimFriedman2 added this pull request to the merge queue Apr 28, 2026
Merged via the queue into rust-lang:master with commit 73d482a Apr 28, 2026
18 checks passed
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Apr 28, 2026
@A4-Tacks A4-Tacks deleted the tuple-empty-expr branch April 29, 2026 09:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants