Skip to content

Commit f2def3f

Browse files
committed
---
yaml --- r: 180199 b: refs/heads/tmp c: 4ef4ddd757f93fee4e5bf8aafd3e9233ea9df034 h: refs/heads/master i: 180197: ece6bb6 180195: 1ce2f7b 180191: 1ac0da9 v: v3
1 parent 71e56c7 commit f2def3f

File tree

3 files changed

+5
-16
lines changed

3 files changed

+5
-16
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ refs/heads/building: 126db549b038c84269a1e4fe46f051b2c15d6970
3434
refs/heads/beta: 44a287e6eb22ec3c2a687fc156813577464017f7
3535
refs/heads/windistfix: 7608dbad651f02e837ed05eef3d74a6662a6e928
3636
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
37-
refs/heads/tmp: fa73d1317ab548315678e0da6df18501829dbb64
37+
refs/heads/tmp: 4ef4ddd757f93fee4e5bf8aafd3e9233ea9df034

branches/tmp/src/librustc/metadata/common.rs

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
pub use self::astencode_tag::*;
1414

15-
use std::mem;
1615
use back::svh::Svh;
1716

1817
// EBML enum definitions and utils shared by the encoder and decoder
@@ -113,7 +112,7 @@ pub const tag_items_data_item_reexport_def_id: uint = 0x39;
113112
pub const tag_items_data_item_reexport_name: uint = 0x3a;
114113

115114
// used to encode crate_ctxt side tables
116-
#[derive(Copy, PartialEq)]
115+
#[derive(Copy, PartialEq, FromPrimitive)]
117116
#[repr(uint)]
118117
pub enum astencode_tag { // Reserves 0x40 -- 0x5f
119118
tag_ast = 0x40,
@@ -146,17 +145,6 @@ pub enum astencode_tag { // Reserves 0x40 -- 0x5f
146145
tag_table_object_cast_map = 0x58,
147146
}
148147

149-
static first_astencode_tag: uint = tag_ast as uint;
150-
static last_astencode_tag: uint = tag_table_object_cast_map as uint;
151-
impl astencode_tag {
152-
pub fn from_uint(value : uint) -> Option<astencode_tag> {
153-
let is_a_tag = first_astencode_tag <= value && value <= last_astencode_tag;
154-
if !is_a_tag { None } else {
155-
Some(unsafe { mem::transmute::<uint, astencode_tag>(value) })
156-
}
157-
}
158-
}
159-
160148
pub const tag_item_trait_item_sort: uint = 0x60;
161149

162150
pub const tag_item_trait_parent_sort: uint = 0x61;

branches/tmp/src/librustc/middle/astencode.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ use syntax::ptr::P;
3838
use syntax;
3939

4040
use std::old_io::Seek;
41+
use std::num::FromPrimitive;
4142
use std::rc::Rc;
4243

4344
use rbml::io::SeekableMemWriter;
@@ -1847,8 +1848,8 @@ fn decode_side_tables(dcx: &DecodeContext,
18471848
debug!(">> Side table document with tag 0x{:x} \
18481849
found for id {} (orig {})",
18491850
tag, id, id0);
1850-
1851-
match c::astencode_tag::from_uint(tag) {
1851+
let decoded_tag: Option<c::astencode_tag> = FromPrimitive::from_uint(tag);
1852+
match decoded_tag {
18521853
None => {
18531854
dcx.tcx.sess.bug(
18541855
&format!("unknown tag found in side tables: {:x}",

0 commit comments

Comments
 (0)