diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2011-08-05 13:58:33 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2011-08-05 13:59:27 -0700 |
| commit | b079e1adbbfdd98b41d3c45e6f83941a7a3c106f (patch) | |
| tree | 1e8fd8f5b2ff012649c7a3d5ecc6ac648ba90829 /src/comp/metadata | |
| parent | c6bb04aba60649b7e126fd35474fab50359eb130 (diff) | |
| download | rust-b079e1adbbfdd98b41d3c45e6f83941a7a3c106f.tar.gz rust-b079e1adbbfdd98b41d3c45e6f83941a7a3c106f.zip | |
rustc: Parse "inline". Also write it into metadata.
Diffstat (limited to 'src/comp/metadata')
| -rw-r--r-- | src/comp/metadata/common.rs | 2 | ||||
| -rw-r--r-- | src/comp/metadata/encoder.rs | 11 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/comp/metadata/common.rs b/src/comp/metadata/common.rs index 065f4dc66bc..128ebea3f28 100644 --- a/src/comp/metadata/common.rs +++ b/src/comp/metadata/common.rs @@ -62,6 +62,8 @@ const tag_crate_deps: uint = 0x25u; // A single crate dependency const tag_crate_dep: uint = 0x26u; +const tag_items_data_item_inlineness: uint = 0x27u; + // djb's cdb hashes. fn hash_node_id(node_id: &int) -> uint { ret 177573u ^ (node_id as uint); } diff --git a/src/comp/metadata/encoder.rs b/src/comp/metadata/encoder.rs index b9a1fa3886a..6649cca29a3 100644 --- a/src/comp/metadata/encoder.rs +++ b/src/comp/metadata/encoder.rs @@ -166,6 +166,12 @@ fn encode_family(ebml_w: &ebmlivec::writer, c: u8) { ebmlivec::end_tag(ebml_w); } +fn encode_inlineness(ebml_w: &ebmlivec::writer, c: u8) { + ebmlivec::start_tag(ebml_w, tag_items_data_item_inlineness); + ebml_w.writer.write(~[c]); + ebmlivec::end_tag(ebml_w); +} + fn def_to_str(did: &def_id) -> str { ret #fmt("%d:%d", did.crate, did.node); } fn encode_type_param_kinds(ebml_w: &ebmlivec::writer, tps: &ty_param[]) { @@ -256,6 +262,11 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: &ebmlivec::writer, encode_family(ebml_w, alt fd.decl.purity { pure_fn. { 'p' } impure_fn. { 'f' } } as u8); + encode_inlineness(ebml_w, + alt fd.decl.il { + il_normal. { 'n' } + il_inline. { 'i' } + } as u8); encode_type_param_kinds(ebml_w, tps); encode_type(ecx, ebml_w, node_id_to_monotype(ecx.ccx.tcx, item.id)); encode_symbol(ecx, ebml_w, item.id); |
