Replace more vector + (issue #2719)
This commit is contained in:
parent
0b84437b68
commit
ae06546bbf
10 changed files with 82 additions and 65 deletions
|
|
@ -21,8 +21,8 @@ impl parser_attr for parser {
|
|||
self.bump();
|
||||
let first_attr =
|
||||
self.parse_attribute_naked(ast::attr_outer, lo);
|
||||
ret some(left([first_attr]/~ +
|
||||
self.parse_outer_attributes()));
|
||||
ret some(left(vec::append([first_attr]/~,
|
||||
self.parse_outer_attributes())));
|
||||
} else if !(self.look_ahead(1u) == token::LT
|
||||
|| self.look_ahead(1u) == token::LBRACKET
|
||||
|| self.look_ahead(1u) == token::POUND
|
||||
|
|
@ -38,7 +38,7 @@ impl parser_attr for parser {
|
|||
let mut attrs: [ast::attribute]/~ = []/~;
|
||||
while self.token == token::POUND
|
||||
&& self.look_ahead(1u) == token::LBRACKET {
|
||||
attrs += [self.parse_attribute(ast::attr_outer)]/~;
|
||||
vec::push(attrs, self.parse_attribute(ast::attr_outer));
|
||||
}
|
||||
ret attrs;
|
||||
}
|
||||
|
|
@ -76,13 +76,13 @@ impl parser_attr for parser {
|
|||
let attr = self.parse_attribute(ast::attr_inner);
|
||||
if self.token == token::SEMI {
|
||||
self.bump();
|
||||
inner_attrs += [attr]/~;
|
||||
vec::push(inner_attrs, attr);
|
||||
} else {
|
||||
// It's not really an inner attribute
|
||||
let outer_attr =
|
||||
spanned(attr.span.lo, attr.span.hi,
|
||||
{style: ast::attr_outer, value: attr.node.value});
|
||||
next_outer_attrs += [outer_attr]/~;
|
||||
vec::push(next_outer_attrs, outer_attr);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,8 +28,8 @@ fn eval_crate_directives_to_mod(cx: ctx, cdirs: [@ast::crate_directive]/~,
|
|||
let mut view_items: [@ast::view_item]/~ = []/~;
|
||||
let mut items: [@ast::item]/~ = []/~;
|
||||
eval_crate_directives(cx, cdirs, prefix, view_items, items);
|
||||
ret ({view_items: view_items + cview_items,
|
||||
items: items + citems},
|
||||
ret ({view_items: vec::append(view_items, cview_items),
|
||||
items: vec::append(items, citems)},
|
||||
cattrs);
|
||||
}
|
||||
|
||||
|
|
@ -100,7 +100,7 @@ fn eval_crate_directive(cx: ctx, cdir: @ast::crate_directive, prefix: str,
|
|||
let (p0, r0) =
|
||||
new_parser_etc_from_file(cx.sess, cx.cfg, full_path, SOURCE_FILE);
|
||||
let inner_attrs = p0.parse_inner_attrs_and_next();
|
||||
let mod_attrs = attrs + inner_attrs.inner;
|
||||
let mod_attrs = vec::append(attrs, inner_attrs.inner);
|
||||
let first_item_outer_attrs = inner_attrs.next;
|
||||
let m0 = p0.parse_mod_items(token::EOF, first_item_outer_attrs);
|
||||
|
||||
|
|
@ -110,7 +110,7 @@ fn eval_crate_directive(cx: ctx, cdir: @ast::crate_directive, prefix: str,
|
|||
// Thread defids, chpos and byte_pos through the parsers
|
||||
cx.sess.chpos = r0.chpos;
|
||||
cx.sess.byte_pos = cx.sess.byte_pos + r0.pos;
|
||||
items += [i]/~;
|
||||
vec::push(items, i);
|
||||
}
|
||||
ast::cdir_dir_mod(id, cdirs, attrs) {
|
||||
let path = cdir_path_opt(id, attrs);
|
||||
|
|
@ -122,15 +122,15 @@ fn eval_crate_directive(cx: ctx, cdir: @ast::crate_directive, prefix: str,
|
|||
cx, cdirs, full_path, none);
|
||||
let i =
|
||||
@{ident: /* FIXME (#2543) */ copy id,
|
||||
attrs: attrs + a0,
|
||||
attrs: vec::append(attrs, a0),
|
||||
id: cx.sess.next_id,
|
||||
node: ast::item_mod(m0),
|
||||
vis: ast::public,
|
||||
span: cdir.span};
|
||||
cx.sess.next_id += 1;
|
||||
items += [i]/~;
|
||||
vec::push(items, i);
|
||||
}
|
||||
ast::cdir_view_item(vi) { view_items += [vi]/~; }
|
||||
ast::cdir_view_item(vi) { vec::push(view_items, vi); }
|
||||
ast::cdir_syntax(pth) { }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1030,7 +1030,9 @@ class parser {
|
|||
let blk = self.parse_fn_block_expr();
|
||||
alt e.node {
|
||||
expr_call(f, args, false) {
|
||||
e = pexpr(@{node: expr_call(f, args + [blk]/~, true)
|
||||
e = pexpr(@{node: expr_call(f,
|
||||
vec::append(args, [blk]/~),
|
||||
true)
|
||||
with *self.to_expr(e)});
|
||||
}
|
||||
_ {
|
||||
|
|
@ -1088,10 +1090,13 @@ class parser {
|
|||
ret alt self.token {
|
||||
token::LPAREN | token::LBRACE | token::LBRACKET {
|
||||
let ket = flip(self.token);
|
||||
tt_delim([parse_tt_flat(self, true)]/~ +
|
||||
self.parse_seq_to_before_end(ket, seq_sep_none(),
|
||||
{|p| p.parse_token_tree()})
|
||||
+ [parse_tt_flat(self, true)]/~)
|
||||
tt_delim(vec::append(
|
||||
[parse_tt_flat(self, true)]/~,
|
||||
vec::append(
|
||||
self.parse_seq_to_before_end(
|
||||
ket, seq_sep_none(),
|
||||
{|p| p.parse_token_tree()}),
|
||||
[parse_tt_flat(self, true)]/~)))
|
||||
}
|
||||
_ { parse_tt_flat(self, false) }
|
||||
};
|
||||
|
|
@ -1357,7 +1362,7 @@ class parser {
|
|||
let b_arg = vec::last(args);
|
||||
let last = self.mk_expr(b_arg.span.lo, b_arg.span.hi,
|
||||
ctor(b_arg));
|
||||
@{node: expr_call(f, vec::init(args) + [last]/~, true)
|
||||
@{node: expr_call(f, vec::append(vec::init(args), [last]/~), true)
|
||||
with *call}
|
||||
}
|
||||
_ {
|
||||
|
|
@ -1655,7 +1660,7 @@ class parser {
|
|||
}
|
||||
}
|
||||
|
||||
let item_attrs = first_item_attrs + item_attrs;
|
||||
let item_attrs = vec::append(first_item_attrs, item_attrs);
|
||||
|
||||
alt self.parse_item(item_attrs, public) {
|
||||
some(i) {
|
||||
|
|
@ -1914,7 +1919,7 @@ class parser {
|
|||
let tps = self.parse_ty_params();
|
||||
let (decl, _) = self.parse_fn_decl(pur, {|p| p.parse_arg()});
|
||||
let (inner_attrs, body) = self.parse_inner_attrs_and_block(true);
|
||||
let attrs = attrs + inner_attrs;
|
||||
let attrs = vec::append(attrs, inner_attrs);
|
||||
@{ident: ident, attrs: attrs, tps: tps, decl: decl, body: body,
|
||||
id: self.get_id(), span: mk_sp(lo, body.span.hi),
|
||||
self_id: self.get_id(), vis: pr}
|
||||
|
|
@ -2026,7 +2031,7 @@ class parser {
|
|||
dtor_decl(blk, s) {
|
||||
the_dtor = some((blk, s));
|
||||
}
|
||||
members(mms) { ms += mms; }
|
||||
members(mms) { ms = vec::append(ms, mms); }
|
||||
}
|
||||
}
|
||||
let actual_dtor = option::map(the_dtor) {|dtor|
|
||||
|
|
@ -2127,7 +2132,10 @@ class parser {
|
|||
let mut first = true;
|
||||
while self.token != term {
|
||||
let mut attrs = self.parse_outer_attributes();
|
||||
if first { attrs = attrs_remaining + attrs; first = false; }
|
||||
if first {
|
||||
attrs = vec::append(attrs_remaining, attrs);
|
||||
first = false;
|
||||
}
|
||||
#debug["parse_mod_items: parse_item(attrs=%?)", attrs];
|
||||
let vis = self.parse_visibility(private);
|
||||
alt self.parse_item(attrs, vis) {
|
||||
|
|
@ -2206,7 +2214,8 @@ class parser {
|
|||
let mut items: [@foreign_item]/~ = []/~;
|
||||
let mut initial_attrs = attrs_remaining;
|
||||
while self.token != token::RBRACE {
|
||||
let attrs = initial_attrs + self.parse_outer_attributes();
|
||||
let attrs = vec::append(initial_attrs,
|
||||
self.parse_outer_attributes());
|
||||
initial_attrs = []/~;
|
||||
vec::push(items, self.parse_foreign_item(attrs));
|
||||
}
|
||||
|
|
@ -2383,7 +2392,7 @@ class parser {
|
|||
} else { ret none; };
|
||||
some(self.mk_item(lo, self.last_span.hi, ident, item_, vis,
|
||||
alt extra_attrs {
|
||||
some(as) { attrs + as }
|
||||
some(as) { vec::append(attrs, as) }
|
||||
none { attrs }
|
||||
}))
|
||||
}
|
||||
|
|
@ -2498,7 +2507,8 @@ class parser {
|
|||
fn parse_view(+first_item_attrs: [attribute]/~,
|
||||
only_imports: bool) -> {attrs_remaining: [attribute]/~,
|
||||
view_items: [@view_item]/~} {
|
||||
let mut attrs = first_item_attrs + self.parse_outer_attributes();
|
||||
let mut attrs = vec::append(first_item_attrs,
|
||||
self.parse_outer_attributes());
|
||||
let mut items = []/~;
|
||||
while if only_imports { self.is_keyword("import") }
|
||||
else { self.is_view_item() } {
|
||||
|
|
@ -2540,7 +2550,8 @@ class parser {
|
|||
crate_directive {
|
||||
|
||||
// Collect the next attributes
|
||||
let outer_attrs = first_outer_attr + self.parse_outer_attributes();
|
||||
let outer_attrs = vec::append(first_outer_attr,
|
||||
self.parse_outer_attributes());
|
||||
// In a crate file outer attributes are only going to apply to mods
|
||||
let expect_mod = vec::len(outer_attrs) > 0u;
|
||||
|
||||
|
|
@ -2559,7 +2570,7 @@ class parser {
|
|||
token::LBRACE {
|
||||
self.bump();
|
||||
let inner_attrs = self.parse_inner_attrs_and_next();
|
||||
let mod_attrs = outer_attrs + inner_attrs.inner;
|
||||
let mod_attrs = vec::append(outer_attrs, inner_attrs.inner);
|
||||
let next_outer_attr = inner_attrs.next;
|
||||
let cdirs = self.parse_crate_directives(token::RBRACE,
|
||||
next_outer_attr);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue