Skip to content

Commit 949e1c7

Browse files
committed
metadata -- remove tiny convenience closure that was causing conflicting mutable borrows
1 parent 7286e35 commit 949e1c7

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

src/librustc/metadata/encoder.rs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -924,15 +924,14 @@ fn encode_info_for_item(ecx: &EncodeContext,
924924
pos: ebml_w.writer.tell().unwrap(),
925925
});
926926
}
927-
let add_to_index: || = || add_to_index(item, ebml_w, index);
928927

929928
debug!("encoding info for item at {}",
930929
ecx.tcx.sess.codemap.span_to_str(item.span));
931930

932931
let def_id = local_def(item.id);
933932
match item.node {
934933
ItemStatic(_, m, _) => {
935-
add_to_index();
934+
add_to_index(item, ebml_w, index);
936935
ebml_w.start_tag(tag_items_data_item);
937936
encode_def_id(ebml_w, def_id);
938937
if m == ast::MutMutable {
@@ -959,7 +958,7 @@ fn encode_info_for_item(ecx: &EncodeContext,
959958
ebml_w.end_tag();
960959
}
961960
ItemFn(_, purity, _, ref generics, _) => {
962-
add_to_index();
961+
add_to_index(item, ebml_w, index);
963962
ebml_w.start_tag(tag_items_data_item);
964963
encode_def_id(ebml_w, def_id);
965964
encode_family(ebml_w, purity_fn_family(purity));
@@ -977,7 +976,7 @@ fn encode_info_for_item(ecx: &EncodeContext,
977976
ebml_w.end_tag();
978977
}
979978
ItemMod(ref m) => {
980-
add_to_index();
979+
add_to_index(item, ebml_w, index);
981980
encode_info_for_mod(ecx,
982981
ebml_w,
983982
m,
@@ -987,7 +986,7 @@ fn encode_info_for_item(ecx: &EncodeContext,
987986
item.vis);
988987
}
989988
ItemForeignMod(ref fm) => {
990-
add_to_index();
989+
add_to_index(item, ebml_w, index);
991990
ebml_w.start_tag(tag_items_data_item);
992991
encode_def_id(ebml_w, def_id);
993992
encode_family(ebml_w, 'n');
@@ -1004,7 +1003,7 @@ fn encode_info_for_item(ecx: &EncodeContext,
10041003
ebml_w.end_tag();
10051004
}
10061005
ItemTy(..) => {
1007-
add_to_index();
1006+
add_to_index(item, ebml_w, index);
10081007
ebml_w.start_tag(tag_items_data_item);
10091008
encode_def_id(ebml_w, def_id);
10101009
encode_family(ebml_w, 'y');
@@ -1015,7 +1014,7 @@ fn encode_info_for_item(ecx: &EncodeContext,
10151014
ebml_w.end_tag();
10161015
}
10171016
ItemEnum(ref enum_definition, ref generics) => {
1018-
add_to_index();
1017+
add_to_index(item, ebml_w, index);
10191018

10201019
ebml_w.start_tag(tag_items_data_item);
10211020
encode_def_id(ebml_w, def_id);
@@ -1053,7 +1052,7 @@ fn encode_info_for_item(ecx: &EncodeContext,
10531052
struct_def.fields, index);
10541053

10551054
/* Index the class*/
1056-
add_to_index();
1055+
add_to_index(item, ebml_w, index);
10571056

10581057
/* Now, make an item for the class itself */
10591058
ebml_w.start_tag(tag_items_data_item);
@@ -1106,7 +1105,7 @@ fn encode_info_for_item(ecx: &EncodeContext,
11061105
let impls = tcx.impls.borrow();
11071106
let imp = impls.get().get(&def_id);
11081107

1109-
add_to_index();
1108+
add_to_index(item, ebml_w, index);
11101109
ebml_w.start_tag(tag_items_data_item);
11111110
encode_def_id(ebml_w, def_id);
11121111
encode_family(ebml_w, 'i');
@@ -1170,7 +1169,7 @@ fn encode_info_for_item(ecx: &EncodeContext,
11701169
}
11711170
}
11721171
ItemTrait(_, ref super_traits, ref ms) => {
1173-
add_to_index();
1172+
add_to_index(item, ebml_w, index);
11741173
ebml_w.start_tag(tag_items_data_item);
11751174
encode_def_id(ebml_w, def_id);
11761175
encode_family(ebml_w, 'I');

src/librustc/metadata/tydecode.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,9 @@ pub fn parse_ident(st: &mut PState, last: char) -> ast::Ident {
9696
}
9797

9898
fn parse_ident_(st: &mut PState, is_last: |char| -> bool) -> ast::Ident {
99+
let tcx = st.tcx;
99100
scan(st, is_last, |bytes| {
100-
st.tcx.sess.ident_of(str::from_utf8(bytes).unwrap())
101+
tcx.sess.ident_of(str::from_utf8(bytes).unwrap())
101102
})
102103
}
103104

0 commit comments

Comments
 (0)