]> git.lizzy.rs Git - rust.git/commitdiff
Auto merge of #24155 - chris-chambers:stmt_macros, r=sfackler
authorbors <bors@rust-lang.org>
Sat, 11 Apr 2015 08:07:34 +0000 (08:07 +0000)
committerbors <bors@rust-lang.org>
Sat, 11 Apr 2015 08:07:34 +0000 (08:07 +0000)
Statement macros are now treated somewhat like item macros, in that a statement macro can now expand into a series of statements, rather than just a single statement.

This allows statement macros to be nested inside other kinds of macros and expand properly, where previously the expansion would only work when no nesting was present.

See:
- `src/test/run-pass/macro-stmt_macro_in_expr_macro.rs`
- `src/test/run-pass/macro-nested_stmt_macro.rs`

This changes the interface of the MacResult trait.  make_stmt has become make_stmts and now returns a vector, rather than a single item.  Plugin writers who were implementing MacResult will have breakage, as well as anyone using MacEager::stmt.

See:
- `src/libsyntax/ext/base.rs`

This also causes a minor difference in behavior to the diagnostics produced by certain malformed macros.

See:
- `src/test/compile-fail/macro-incomplete-parse.rs`

1  2 
src/libsyntax/ext/expand.rs
src/libsyntax/ext/tt/macro_rules.rs
src/test/compile-fail/macro-incomplete-parse.rs

Simple merge
Simple merge