Skip to content

Syntax extensions (and macros) that start a line want to be a whole statement #364

Closed
@rust-highfive

Description

@rust-highfive

Issue by paulstansifer
Thursday Apr 18, 2013 at 19:37 GMT

For earlier discussion, see rust-lang/rust#5941

This issue was labelled with: A-parser, A-syntaxext, P-high in the Rust repository


{ stringify!(bees).to_owned() }
 foo.rs:5:27: 5:28 error: unexpected token: `.`
 foo.rs:5          { stringify!(bees).to_owned() }
                                     ^

However, if you wrap the macro invocation in parens...

 { (stringify!(bees)).to_owned() }

...it works.

The tricky thing about this problem is that, when the parser sees stringify!, it doesn't know whether it'll be a statement macro or an expression macro; currently, it commits to the former, which breaks if the invocation has to be an expression.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions