diff options
| author | Brian Anderson <banderson@mozilla.com> | 2011-06-28 15:46:09 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2011-06-28 15:46:09 -0700 |
| commit | 8ac60e99ea194fefc286ced55d7eda01cc2fc332 (patch) | |
| tree | fa482d5f20ab1b146d131d3964ee4ce44976c4a3 /src/comp/back | |
| parent | aecc5e6e0f1a2927210f68973b2a3c6353c39f01 (diff) | |
| download | rust-8ac60e99ea194fefc286ced55d7eda01cc2fc332.tar.gz rust-8ac60e99ea194fefc286ced55d7eda01cc2fc332.zip | |
Extract meta_item sorting from back::link to middle::attr
Diffstat (limited to 'src/comp/back')
| -rw-r--r-- | src/comp/back/link.rs | 29 |
1 files changed, 6 insertions, 23 deletions
diff --git a/src/comp/back/link.rs b/src/comp/back/link.rs index 1c1bdee8747..7876b1cfc59 100644 --- a/src/comp/back/link.rs +++ b/src/comp/back/link.rs @@ -306,32 +306,15 @@ fn crate_link_metas(&ast::crate c) -> link_metas { // This calculates CMH as defined above fn crate_meta_extras_hash(sha1 sha, &ast::crate crate) -> str { - // FIXME (#487) Move this sorting stuff into middle::attr - fn lteq(&@ast::meta_item ma, &@ast::meta_item mb) -> bool { - fn key(&@ast::meta_item m) -> ast::ident { - alt (m.node) { - case (ast::meta_word(?name)) { - name - } - case (ast::meta_name_value(?name, _)) { - name - } - case (ast::meta_list(?name, _)) { - name - } - } - } - ret key(ma) <= key(mb); - } fn len_and_str(&str s) -> str { ret #fmt("%u_%s", str::byte_len(s), s); } + + auto cmh_items = { + auto cmh_items = crate_link_metas(crate).cmh_items; + attr::sort_meta_items(cmh_items) + }; - let vec[mutable @ast::meta_item] v = [mutable ]; - for (@ast::meta_item mi in crate_link_metas(crate).cmh_items) { - v += [mutable mi]; - } - sort::quick_sort(lteq, v); sha.reset(); - for (@ast::meta_item m_ in v) { + for (@ast::meta_item m_ in cmh_items) { auto m = m_; alt (m.node) { case (ast::meta_name_value(?key, ?value)) { |
