about summary refs log tree commit diff
path: root/src/test/incremental/thinlto
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-07-19 00:35:33 +0000
committerbors <bors@rust-lang.org>2017-07-19 00:35:33 +0000
commit83c36219102616939c4172184b01176f19033464 (patch)
treed549285d8c122f654bb321211a431ca0527c972e /src/test/incremental/thinlto
parentaf049cd08b58520af2dd202f15d00f67f9748322 (diff)
parente3d052f30af80e58289065bb3d7520e0e7be1ee8 (diff)
downloadrust-83c36219102616939c4172184b01176f19033464.tar.gz
rust-83c36219102616939c4172184b01176f19033464.zip
Auto merge of #40989 - matklad:comma-arms, r=petrochenkov
Unify rules about commas in match arms and semicolons in expressions

Original discussion: https://internals.rust-lang.org/t/syntax-of-block-like-expressions-in-match-arms/5025/7.

Currently, rust uses different rules to determine if `,` is needed after an expression in a match arm and if `;` is needed in an expression statement:

```Rust
fn stmt() {
    # no need for semicolons
    { () }
    if true { () } else { () }
    loop {}
    while true {}
}

fn match_arm(n: i32) {
    match n {
        1 => { () } # can omit comma here
        2 => if true { () } else { () }, # but all other cases do need commas.
        3 => loop { },
        4 => while true {},
        _ => ()
    }
}
```

This seems weird: why would you want to require `,` after and `if`?

This PR unifies the rules. It is backwards compatible because it allows strictly more programs.
Diffstat (limited to 'src/test/incremental/thinlto')
0 files changed, 0 insertions, 0 deletions