Skip to content

Commit d6b6ded

Browse files
committed
---
yaml --- r: 3625 b: refs/heads/master c: ec890ff h: refs/heads/master i: 3623: 7b366ae v: v3
1 parent 48afda5 commit d6b6ded

File tree

7 files changed

+54
-30
lines changed

7 files changed

+54
-30
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 3f6c9f8d8495bb83ee9afd3894f7dd16065419d2
2+
refs/heads/master: ec890fff23d80da97086e89f29ef7f8d14dbaab8

trunk/src/comp/front/attr.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,11 @@ export mk_attr;
2929

3030
// From a list of crate attributes get only the meta_items that impact crate
3131
// linkage
32-
fn find_linkage_metas(&ast::attribute[] attrs) -> vec[@ast::meta_item] {
33-
let vec[@ast::meta_item] metas = [];
32+
fn find_linkage_metas(&ast::attribute[] attrs) -> (@ast::meta_item)[] {
33+
let (@ast::meta_item)[] metas = ~[];
3434
for (ast::attribute attr in find_attrs_by_name(attrs, "link")) {
3535
alt (attr.node.value.node) {
36-
case (ast::meta_list(_, ?items)) {
37-
metas += items;
38-
}
36+
case (ast::meta_list(_, ?items)) { metas += items; }
3937
case (_) {
4038
log "ignoring link attribute that has incorrect type";
4139
}
@@ -133,7 +131,7 @@ fn eq(@ast::meta_item a, @ast::meta_item b) -> bool {
133131
}
134132
}
135133

136-
fn contains(&vec[@ast::meta_item] haystack, @ast::meta_item needle) -> bool {
134+
fn contains(&(@ast::meta_item)[] haystack, @ast::meta_item needle) -> bool {
137135
log #fmt("looking for %s",
138136
syntax::print::pprust::meta_item_to_str(*needle));
139137
for (@ast::meta_item item in haystack) {
@@ -222,8 +220,8 @@ fn mk_name_value_item(ast::ident name, ast::lit value) -> @ast::meta_item {
222220
ret @span(ast::meta_name_value(name, value));
223221
}
224222

225-
fn mk_list_item(ast::ident name,
226-
&vec[@ast::meta_item] items) -> @ast::meta_item {
223+
fn mk_list_item(ast::ident name, &(@ast::meta_item)[] items)
224+
-> @ast::meta_item {
227225
ret @span(ast::meta_list(name, items));
228226
}
229227

trunk/src/comp/front/config.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,9 @@ fn in_cfg(&ast::crate_cfg cfg, &ast::attribute[] attrs) -> bool {
109109
// so we can match against them. This is the list of configurations for
110110
// which the item is valid
111111
auto item_cfg_metas = {
112-
fn extract_metas(&vec[@ast::meta_item] inner_items,
112+
fn extract_metas(&(@ast::meta_item)[] inner_items,
113113
&@ast::meta_item cfg_item)
114-
-> vec[@ast::meta_item] {
114+
-> (@ast::meta_item)[] {
115115

116116
alt (cfg_item.node) {
117117
case (ast::meta_list(?name, ?items)) {
@@ -122,13 +122,11 @@ fn in_cfg(&ast::crate_cfg cfg, &ast::attribute[] attrs) -> bool {
122122
}
123123
}
124124
auto cfg_metas = attr::attr_metas(item_cfg_attrs);
125-
vec::foldl(extract_metas, [], cfg_metas)
125+
ivec::foldl(extract_metas, ~[], cfg_metas)
126126
};
127127

128128
for (@ast::meta_item cfg_mi in item_cfg_metas) {
129-
if (attr::contains(cfg, cfg_mi)) {
130-
ret true;
131-
}
129+
if (attr::contains(cfg, cfg_mi)) { ret true; }
132130
}
133131

134132
ret false;

trunk/src/comp/syntax/ast.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ fn def_id_of_def(def d) -> def_id {
8181

8282
// The set of meta_items that define the compilation environment of the crate,
8383
// used to drive conditional compilation
84-
type crate_cfg = vec[@meta_item];
84+
type crate_cfg = (@meta_item)[];
8585

8686
type crate = spanned[crate_];
8787

@@ -105,7 +105,7 @@ type meta_item = spanned[meta_item_];
105105

106106
tag meta_item_ {
107107
meta_word(ident);
108-
meta_list(ident, vec[@meta_item]);
108+
meta_list(ident, (@meta_item)[]);
109109
meta_name_value(ident, lit);
110110
}
111111

@@ -505,7 +505,7 @@ type variant = spanned[variant_];
505505
type view_item = spanned[view_item_];
506506

507507
tag view_item_ {
508-
view_item_use(ident, vec[@meta_item], node_id);
508+
view_item_use(ident, (@meta_item)[], node_id);
509509
view_item_import(ident, vec[ident], node_id);
510510
view_item_import_glob(vec[ident], node_id);
511511
view_item_export(ident, node_id);

trunk/src/comp/syntax/fold.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ fn fold_meta_item_(&@meta_item mi, ast_fold fld) -> @meta_item {
103103
case (meta_word(?id)) { meta_word(fld.fold_ident(id)) }
104104
case (meta_list(?id, ?mis)) {
105105
auto fold_meta_item = bind fold_meta_item_(_,fld);
106-
meta_list(id, map(fold_meta_item, mis))
106+
meta_list(id, ivec::map(fold_meta_item, mis))
107107
}
108108
case (meta_name_value(?id,?s)) {
109109
meta_name_value(fld.fold_ident(id),s)
@@ -134,7 +134,7 @@ fn noop_fold_crate(&crate_ c, ast_fold fld) -> crate_ {
134134
ret rec(directives=ivec::map(fld.fold_crate_directive, c.directives),
135135
module=fld.fold_mod(c.module),
136136
attrs=ivec::map(fold_attribute, c.attrs),
137-
config=vec::map(fold_meta_item, c.config));
137+
config=ivec::map(fold_meta_item, c.config));
138138
}
139139

140140
fn noop_fold_crate_directive(&crate_directive_ cd, ast_fold fld)

trunk/src/comp/syntax/parse/parser.rs

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -591,6 +591,24 @@ fn parse_seq_to_end[T](token::token ket, option::t[token::token] sep,
591591
ret v;
592592
}
593593

594+
fn parse_seq_to_end_ivec[T](token::token ket, option::t[token::token] sep,
595+
fn(&parser)->T f, &parser p) -> T[] {
596+
let bool first = true;
597+
let T[] v = ~[];
598+
while (p.peek() != ket) {
599+
alt (sep) {
600+
case (some(?t)) {
601+
if (first) { first = false; } else { expect(p, t); }
602+
}
603+
case (_) { }
604+
}
605+
v += ~[f(p)];
606+
}
607+
expect(p, ket);
608+
ret v;
609+
}
610+
611+
594612
fn parse_seq[T](token::token bra, token::token ket,
595613
option::t[token::token] sep, fn(&parser) -> T f, &parser p)
596614
-> ast::spanned[vec[T]] {
@@ -601,6 +619,17 @@ fn parse_seq[T](token::token bra, token::token ket,
601619
ret spanned(lo, hi, result);
602620
}
603621

622+
fn parse_seq_ivec[T](token::token bra, token::token ket,
623+
option::t[token::token] sep,
624+
fn(&parser)->T f, &parser p) -> ast::spanned[T[]] {
625+
auto lo = p.get_lo_pos();
626+
expect(p, bra);
627+
auto result = parse_seq_to_end_ivec[T](ket, sep, f, p);
628+
auto hi = p.get_hi_pos();
629+
ret spanned(lo, hi, result);
630+
}
631+
632+
604633
fn parse_lit(&parser p) -> ast::lit {
605634
auto sp = p.get_span();
606635
let ast::lit_ lit = ast::lit_nil;
@@ -2186,15 +2215,15 @@ fn parse_meta_item(&parser p) -> @ast::meta_item {
21862215
}
21872216
}
21882217

2189-
fn parse_meta_seq(&parser p) -> vec[@ast::meta_item] {
2190-
ret parse_seq(token::LPAREN, token::RPAREN, some(token::COMMA),
2191-
parse_meta_item, p).node;
2218+
fn parse_meta_seq(&parser p) -> (@ast::meta_item)[] {
2219+
ret parse_seq_ivec(token::LPAREN, token::RPAREN, some(token::COMMA),
2220+
parse_meta_item, p).node;
21922221
}
21932222

2194-
fn parse_optional_meta(&parser p) -> vec[@ast::meta_item] {
2223+
fn parse_optional_meta(&parser p) -> (@ast::meta_item)[] {
21952224
alt (p.peek()) {
21962225
case (token::LPAREN) { ret parse_meta_seq(p); }
2197-
case (_) { let vec[@ast::meta_item] v = []; ret v; }
2226+
case (_) { ret ~[]; }
21982227
}
21992228
}
22002229

@@ -2204,8 +2233,7 @@ fn parse_use(&parser p) -> @ast::view_item {
22042233
auto metadata = parse_optional_meta(p);
22052234
auto hi = p.get_hi_pos();
22062235
expect(p, token::SEMI);
2207-
auto use_decl =
2208-
ast::view_item_use(ident, metadata, p.get_id());
2236+
auto use_decl = ast::view_item_use(ident, metadata, p.get_id());
22092237
ret @spanned(lo, hi, use_decl);
22102238
}
22112239

trunk/src/comp/syntax/print/pprust.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1118,7 +1118,7 @@ fn print_meta_item(&ps s, &@ast::meta_item item) {
11181118
case (ast::meta_list(?name, ?items)) {
11191119
word(s.s, name);
11201120
popen(s);
1121-
commasep(s, consistent, items, print_meta_item);
1121+
commasep_ivec(s, consistent, items, print_meta_item);
11221122
pclose(s);
11231123
}
11241124
}
@@ -1132,9 +1132,9 @@ fn print_view_item(&ps s, &@ast::view_item item) {
11321132
case (ast::view_item_use(?id, ?mta, _)) {
11331133
head(s, "use");
11341134
word(s.s, id);
1135-
if (vec::len(mta) > 0u) {
1135+
if (ivec::len(mta) > 0u) {
11361136
popen(s);
1137-
commasep(s, consistent, mta, print_meta_item);
1137+
commasep_ivec(s, consistent, mta, print_meta_item);
11381138
pclose(s);
11391139
}
11401140
}

0 commit comments

Comments
 (0)