Skip to content

Parse dot and question mark after curly braced macro invocation #1068

Closed
@dtolnay

Description

@dtolnay

The legality of this syntax changed in rust-lang/rust#88690.

Example upstream test case: https://github.com/rust-lang/rust/blob/bf642323d621dcefeef1d8ab4711aae36e357615/src/test/ui/parser/macro-braces-dot-question.rs

vec! { 1, 2, 3 }.len();
write! { vec![], "" }?;
println!{""}
[0]; // separate statement, not indexing into the result of println.

Currently fails to parse with syn because we consider the braced macro expression a statement terminator, same as rustc <=1.56.

error: expected expression
 --> dev/main.rs:6:21
  |
6 |     vec! { 1, 2, 3 }.len();
  |                     ^

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions