]> git.lizzy.rs Git - rust.git/commit
auto merge of #19984 : japaric/rust/macro-expressions, r=alexcrichton
authorbors <bors@rust-lang.org>
Thu, 18 Dec 2014 17:32:07 +0000 (17:32 +0000)
committerbors <bors@rust-lang.org>
Thu, 18 Dec 2014 17:32:07 +0000 (17:32 +0000)
commitf9a48492a82f805aa40d8b6fea290badbab0d1b1
treef496892ac2e9bfb5b7be8016c6d5ad5e5d6667ef
parentc4d58ce15be0318622b42790a501e0d20a9f827c
parentddb2466f6a1bb66f22824334022a4cee61c73bdc
auto merge of #19984 : japaric/rust/macro-expressions, r=alexcrichton

followed by a semicolon.

This allows code like `vec![1i, 2, 3].len();` to work.

This breaks code that uses macros as statements without putting
semicolons after them, such as:

    fn main() {
        ...
        assert!(a == b)
        assert!(c == d)
        println(...);
    }

It also breaks code that uses macros as items without semicolons:

    local_data_key!(foo)

    fn main() {
        println("hello world")
    }

Add semicolons to fix this code. Those two examples can be fixed as
follows:

    fn main() {
        ...
        assert!(a == b);
        assert!(c == d);
        println(...);
    }

    local_data_key!(foo);

    fn main() {
        println("hello world")
    }

RFC #378.

Closes #18635.

[breaking-change]

---

Rebased version of #18958
r? @alexcrichton
cc @pcwalton
src/libstd/rt/backtrace.rs