Skip to content

run_cmd!{} alone with curly braces doesn't compile #40

Closed
@allmycode

Description

@allmycode

This doesn't compile

fn main() -> std::io::Result<()> {
    run_cmd!{ls}?;
    Ok(())
}

compiles says

error: expected expression, found `?`
 --> src/main.rs:4:17
  |
4 |     run_cmd!{ls}?;
  |                 ^ expected expression

error[E0308]: mismatched types
 --> src/main.rs:4:5
  |
4 |     run_cmd!{ls}?;
  |     ^^^^^^^^^^^^ expected `()`, found enum `Result`
  |
  = note: expected unit type `()`
                  found enum `Result<(), std::io::Error>`

while this compiles fine

fn main() -> std::io::Result<()> {
    run_cmd!(ls)?;
    Ok(())
}

This with curly braces compiles too

fn main() -> std::io::Result<()> {
    let _ = run_cmd!{ls}?;
    Ok(())
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions