File tree Expand file tree Collapse file tree 2 files changed +4
-15
lines changed Expand file tree Collapse file tree 2 files changed +4
-15
lines changed Original file line number Diff line number Diff line change 12
12
13
13
pub use self :: astencode_tag:: * ;
14
14
15
- use std:: mem;
16
15
use back:: svh:: Svh ;
17
16
18
17
// 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;
113
112
pub const tag_items_data_item_reexport_name: uint = 0x3a ;
114
113
115
114
// used to encode crate_ctxt side tables
116
- #[ derive( Copy , PartialEq ) ]
115
+ #[ derive( Copy , PartialEq , FromPrimitive ) ]
117
116
#[ repr( uint) ]
118
117
pub enum astencode_tag { // Reserves 0x40 -- 0x5f
119
118
tag_ast = 0x40 ,
@@ -145,17 +144,6 @@ pub enum astencode_tag { // Reserves 0x40 -- 0x5f
145
144
tag_table_object_cast_map = 0x57 ,
146
145
}
147
146
148
- static first_astencode_tag: uint = tag_ast as uint ;
149
- static last_astencode_tag: uint = tag_table_object_cast_map as uint ;
150
- impl astencode_tag {
151
- pub fn from_uint ( value : uint ) -> Option < astencode_tag > {
152
- let is_a_tag = first_astencode_tag <= value && value <= last_astencode_tag;
153
- if !is_a_tag { None } else {
154
- Some ( unsafe { mem:: transmute :: < uint , astencode_tag > ( value) } )
155
- }
156
- }
157
- }
158
-
159
147
pub const tag_item_trait_item_sort: uint = 0x60 ;
160
148
161
149
pub const tag_item_trait_parent_sort: uint = 0x61 ;
Original file line number Diff line number Diff line change @@ -38,6 +38,7 @@ use syntax::ptr::P;
38
38
use syntax;
39
39
40
40
use std:: old_io:: Seek ;
41
+ use std:: num:: FromPrimitive ;
41
42
use std:: rc:: Rc ;
42
43
43
44
use rbml:: io:: SeekableMemWriter ;
@@ -1875,8 +1876,8 @@ fn decode_side_tables(dcx: &DecodeContext,
1875
1876
debug ! ( ">> Side table document with tag 0x{:x} \
1876
1877
found for id {} (orig {})",
1877
1878
tag, id, id0) ;
1878
-
1879
- match c :: astencode_tag :: from_uint ( tag ) {
1879
+ let decoded_tag : Option < c :: astencode_tag > = FromPrimitive :: from_uint ( tag ) ;
1880
+ match decoded_tag {
1880
1881
None => {
1881
1882
dcx. tcx . sess . bug (
1882
1883
& format ! ( "unknown tag found in side tables: {:x}" ,
You can’t perform that action at this time.
0 commit comments