Skip to content

Commit 97957a8

Browse files
committed
---
yaml --- r: 15795 b: refs/heads/try c: 5c864e9 h: refs/heads/master i: 15793: ca8fe72 15791: 7178588 v: v3
1 parent 280411c commit 97957a8

File tree

3 files changed

+22
-13
lines changed

3 files changed

+22
-13
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
refs/heads/master: 61b1875c16de39c166b0f4d54bba19f9c6777d1a
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 4a81779abd786ff22d71434c6d9a5917ea4cdfff
5-
refs/heads/try: 32c4b6da5ba01e1f7e4a9c3f1e288a7cbc73a32e
5+
refs/heads/try: 5c864e9de0d3b09bc682e95d067883216faa17aa
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105

branches/try/src/rustc/metadata/encoder.rs

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ import std::ebml::serializer;
2020
import middle::resolve;
2121
import syntax::ast;
2222
import driver::session::session;
23-
import middle::astencode;
2423

2524
export encode_parms;
2625
export encode_metadata;
2726
export encoded_ty;
2827
export reachable;
28+
export encode_inlined_item;
2929

3030
// used by astencode:
3131
export def_to_str;
@@ -35,6 +35,11 @@ export encode_def_id;
3535

3636
type abbrev_map = map::hashmap<ty::t, tyencode::ty_abbrev>;
3737

38+
type encode_inlined_item = fn@(ecx: @encode_ctxt,
39+
ebml_w: ebml::writer,
40+
path: ast_map::path,
41+
ii: ast::inlined_item);
42+
3843
type encode_parms = {
3944
tcx: ty::ctxt,
4045
reachable: hashmap<ast::node_id, ()>,
@@ -43,10 +48,11 @@ type encode_parms = {
4348
discrim_symbols: hashmap<ast::node_id, str>,
4449
link_meta: back::link::link_meta,
4550
cstore: cstore::cstore,
46-
maps: maps
51+
maps: maps,
52+
encode_inlined_item: encode_inlined_item
4753
};
4854

49-
type encode_ctxt = {
55+
enum encode_ctxt = {
5056
tcx: ty::ctxt,
5157
reachable: hashmap<ast::node_id, ()>,
5258
exp_map: resolve::exp_map,
@@ -55,6 +61,7 @@ type encode_ctxt = {
5561
link_meta: back::link::link_meta,
5662
cstore: cstore::cstore,
5763
maps: maps,
64+
encode_inlined_item: encode_inlined_item,
5865
type_abbrevs: abbrev_map
5966
};
6067

@@ -491,7 +498,7 @@ fn encode_info_for_fn(ecx: @encode_ctxt, ebml_w: ebml::writer,
491498
encode_path(ebml_w, path, ast_map::path_name(ident));
492499
alt item {
493500
some(it) {
494-
astencode::encode_inlined_item(ecx, ebml_w, path, it);
501+
ecx.encode_inlined_item(ecx, ebml_w, path, it);
495502
}
496503
none {
497504
encode_symbol(ecx, ebml_w, id);
@@ -513,7 +520,7 @@ fn encode_info_for_method(ecx: @encode_ctxt, ebml_w: ebml::writer,
513520
encode_name(ebml_w, m.ident);
514521
encode_path(ebml_w, impl_path, ast_map::path_name(m.ident));
515522
if all_tps.len() > 0u || should_inline {
516-
astencode::encode_inlined_item(
523+
ecx.encode_inlined_item(
517524
ecx, ebml_w, impl_path,
518525
ii_method(local_def(parent_id), m));
519526
} else {
@@ -574,7 +581,7 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: ebml::writer, item: @item,
574581
encode_type(ecx, ebml_w, node_id_to_type(tcx, item.id));
575582
encode_path(ebml_w, path, ast_map::path_name(item.ident));
576583
if tps.len() > 0u || should_inline(item.attrs) {
577-
astencode::encode_inlined_item(ecx, ebml_w, path, ii_item(item));
584+
ecx.encode_inlined_item(ecx, ebml_w, path, ii_item(item));
578585
} else {
579586
encode_symbol(ecx, ebml_w, item.id);
580587
}
@@ -616,7 +623,7 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: ebml::writer, item: @item,
616623
for variants.each {|v|
617624
encode_variant_id(ebml_w, local_def(v.node.id));
618625
}
619-
astencode::encode_inlined_item(ecx, ebml_w, path, ii_item(item));
626+
ecx.encode_inlined_item(ecx, ebml_w, path, ii_item(item));
620627
encode_path(ebml_w, path, ast_map::path_name(item.ident));
621628
encode_region_param(ebml_w, rp);
622629
}
@@ -692,7 +699,7 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: ebml::writer, item: @item,
692699
encode_type_param_bounds(ebml_w, ecx, tps);
693700
encode_type(ecx, ebml_w, ty::ty_fn_ret(fn_ty));
694701
encode_name(ebml_w, item.ident);
695-
astencode::encode_inlined_item(ecx, ebml_w, path, ii_item(item));
702+
ecx.encode_inlined_item(ecx, ebml_w, path, ii_item(item));
696703
if (tps.len() == 0u) {
697704
encode_symbol(ecx, ebml_w, item.id);
698705
}
@@ -777,8 +784,8 @@ fn encode_info_for_native_item(ecx: @encode_ctxt, ebml_w: ebml::writer,
777784
encode_type_param_bounds(ebml_w, ecx, tps);
778785
encode_type(ecx, ebml_w, node_id_to_type(ecx.tcx, nitem.id));
779786
if abi == native_abi_rust_intrinsic {
780-
astencode::encode_inlined_item(ecx, ebml_w, path,
781-
ii_native(nitem));
787+
ecx.encode_inlined_item(ecx, ebml_w, path,
788+
ii_native(nitem));
782789
} else {
783790
encode_symbol(ecx, ebml_w, nitem.id);
784791
}
@@ -1045,7 +1052,7 @@ fn encode_hash(ebml_w: ebml::writer, hash: str) {
10451052
}
10461053

10471054
fn encode_metadata(parms: encode_parms, crate: @crate) -> [u8] {
1048-
let ecx: @encode_ctxt = @{
1055+
let ecx: @encode_ctxt = @encode_ctxt({
10491056
tcx: parms.tcx,
10501057
reachable: parms.reachable,
10511058
exp_map: parms.exp_map,
@@ -1054,8 +1061,9 @@ fn encode_metadata(parms: encode_parms, crate: @crate) -> [u8] {
10541061
link_meta: parms.link_meta,
10551062
cstore: parms.cstore,
10561063
maps: parms.maps,
1064+
encode_inlined_item: parms.encode_inlined_item,
10571065
type_abbrevs: ty::new_ty_hash()
1058-
};
1066+
});
10591067

10601068
let buf = io::mem_buffer();
10611069
let buf_w = io::mem_buffer_writer(buf);

branches/try/src/rustc/middle/trans/base.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5000,6 +5000,7 @@ fn crate_ctxt_to_encode_parms(cx: @crate_ctxt)
50005000
link_meta: cx.link_meta,
50015001
cstore: cx.sess.cstore,
50025002
maps: cx.maps,
5003+
encode_inlined_item: middle::astencode::encode_inlined_item
50035004
}
50045005

50055006
}

0 commit comments

Comments
 (0)