提交 85467b6b 编写于 作者: S Stepan Koltsov

Allow trailing comma in `concat!`

(And in other extensions implemented with `get_exprs_from_tts` function).
上级 baa72085
......@@ -593,11 +593,14 @@ pub fn get_exprs_from_tts(cx: &mut ExtCtxt,
.collect());
let mut es = Vec::new();
while p.token != token::EOF {
if es.len() != 0 && !p.eat(&token::COMMA) {
es.push(cx.expand_expr(p.parse_expr()));
if p.eat(&token::COMMA) {
continue;
}
if p.token != token::EOF {
cx.span_err(sp, "expected token: `,`");
return None;
}
es.push(cx.expand_expr(p.parse_expr()));
}
Some(es)
}
......
// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
......@@ -11,6 +11,8 @@
pub fn main() {
assert_eq!(format!(concat!("foo", "bar", "{}"), "baz"), "foobarbaz".to_string());
assert_eq!(format!(concat!()), "".to_string());
// check trailing comma is allowed in concat
assert_eq!(concat!("qux", "quux",).to_string(), "quxquux".to_string());
assert_eq!(
concat!(1, 2i, 3u, 4f32, 4.0, 'a', true, ()),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册